comme le sujet l'indique je cherche à trouver l'id (clé primaire) d'une table choisie par une combo
la combo fonctionne et je récupère bien le nom de la table.
mais j'ai une erreur de syntaxe dans
$res = mysqli_query($SQL,'DESCRIBE ').$table);
voici mon code
//on recupere le nom de la table appelée par la combobox echo $table;//c ok // on cHerche dans la table le champ ID CLE PRIMAIRE DE LA TABLE $res = mysqli_query($SQL,'DESCRIBE ').$table);
milles excuses, comme j'ai tout essayé, j'ai copié une mauvaise version
mais en retirant la ) en trop j'ai toujours une erreur avec
$res = mysqli_query($SQL,'DESCRIBE ').$table;
act_dec3 çà c'est mon echo $table
Error :You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM act_dec3' at line 1
par contre.... je ne comprend pas le rapport entre le message d'erreur et la ligne de code que tu nous montres...
N'aurais tu pas une autre requête ailleurs dans ton code ?
chose promise ,chose due
Script reindexation table mysql choisie par combobox
<?php error_reporting(E_ALL); //error_reporting(0); //------------------------------------------------------------------- // Application de réindexation tables MySql // choix des tables par combobox // script php 5.5 à 7.03 et + // fichier index.php
// Récupération des sauvegardes de tables dans le répertoire _backup_tables //---------------------------------------------------------------------- ?> <html> <head> <title>reindexe_table_bdd</title> <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> <meta name="Author" content="Claude TREUNET" /> </head> <body> <?php
//-------------------------------------------------------------------- // Connexion au serveur et la bdd //-------------------------------------------------------------------- //------------------ Php 5.5 et + ------------------------------------
$host="localhost";// mettre à jour les elements de connexion $user="root"; $passwd="root"; $bdd="aisne";
$SQL = mysqli_connect($host,$user,$passwd,$bdd) or exit('Erreur de connection au serveur : Fichier'.__FILE__.'<br />Ligne '.__LINE__.'<br />MySQL dit : '.mysqli_connect_error($SQL));
//--------------- Vérification de la connexion ----------------------- if (mysqli_connect_errno()) { printf("Échec de la connexion : %s\n", mysqli_connect_error()); exit();
}
// ------------ Charger toutes les tables de la BdD------------------- echo'<br />'; echo'<br />'; echo'<br />';
$req="show tables"; $result=mysqli_query($SQL,$req); echo"<center>"; echo "<p><h5><b>Sélectionnez la table à Réindexer: </b></h5></p>"; echo'<FORM method "GET" NAME="table" action"liste_tables_combo.php">'; echo'<SELECT NAME="table" onchange="form.submit()">'; echo"<OPTION>-- Choisissez une table ---</OPTION>"; while ($ligne=mysqli_fetch_array($result)) { echo "<option value='".$ligne[0]."'>".$ligne[0]."</option>"; } echo "</select>"; echo"</form>"; echo"</center>";
//--- Récuperation du nom de la table choisie dans la combo ----------
$table = $_GET['table']; //echo $table;
//--------------------- legende -Bandeau bleu------------------------- if( $_GET['table']) { echo'<br />'; echo'<br />'; echo'<br />'; echo"<center>"; echo'<div class= "blue">'; echo"<pr>"; echo"<br />"; echo"vous avez choisi ----> $table"; echo"<br />";echo"<br />"; echo"</pr>"; echo'</div>'; echo"</center>"; echo"<br />"; echo'<br />' ; echo'<br />'; echo'<br />'; } //-------------------------------------------------------------------- //--Recherche sur Table et nom du champ de l'ID à ré indéxé ---------- //-------------------------------------------------------------------- if(!empty($table)) {
//echo $table;//c ok // on cHerche dans la table le champ ID CLE PRIMAIRE DE LA TABLE $res = mysqli_query($SQL,'DESCRIBE '.$table);
//-------------------------------------------------------------------- // Verrouillage de la table pour empêcher une écriture simultanée mysqli_query($SQL,"LOCK `$table` WRITE");
// Lecture de la table $REQUETE = "SELECT $id_table FROM $table"; $result = mysqli_query($SQL,$REQUETE); if(!$result) { echo("Error :" . mysqli_error($SQL)); exit(); } // Détermine le nombre de lignes du jeu de résultats $nbre_ligne = mysqli_num_rows($result); echo"<br />"; echo"<br />"; echo"<br />"; echo"<center>"; printf("Le jeu de résultats a %d lignes.\n", $nbre_ligne); echo"</center>"; echo"<br />"; echo"<br />"; echo"<br />";
//On parcourt la liste $i=0; while ($row = mysqli_fetch_row($result)) { $liste_id = $row[0]; //insertion en BDD $insert = mysqli_query($SQL,"UPDATE `$table` SET `$id_table` = $i+1 WHERE `$id_table` = $liste_id"); if(!$insert){ echo("Error :" . mysqli_error($SQL)); exit(); } $i++; } //------------- Fermeture mysql--------------------------------------- // Déverrouillage de la table mysqli_query($SQL,"UNLOCK `$table`");
//libere mémoire mysqli_free_result($result);
//cloture de la base mysqli_close($SQL);
// message pour signaler que la réindexation de la table de la boucle a été faite ou pas echo '<div align="center" style="color:#0A0; font-weight:bold; "> La réindexation de la table `'.$table.'` s\'est déroulée avec succès ! </div>'; ?> }