claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019
-
Modifié par claude77260 le 7/03/2016 à 14:16
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024
-
7 mars 2016 à 15:34
Bonjour à tous
je voudrais faire un script de réindexation de table mysql
j'avais un vieux script qui fonctionnait en php4 que je voudrais mettre à jour pour php 5.5 et +
mais j'ai une erreur sur la ligne $liste_id = mysqli_result($result,$i); que je ne trouve pas
Fatal error: Call to undefined function mysqli_result() in E:\1-SERVEUR__php7\www\php7\reindex_table\index.php on line 55
à noter que la requête fonctionne et me donne donne bien le nbre d'enregistrement
si un œil tout nouveau pouvait me dire ou est le problème
merci d'avance
voici le code:
// Lecture de la table $REQUETE = "SELECT $id_table FROM $table"; $result = mysqli_query($SQL,$REQUETE);
// Détermine le nombre de lignes du jeu de résultats $nbre_ligne = mysqli_num_rows($result); echo"<center>"; printf("Le jeu de résultats a %d lignes.\n", $nbre_ligne); echo"</center>";
//------------------ Modification de la table ------------------------ for($i=0;$i < $nbre_ligne;$i++) { $liste_id = mysqli_result($result,$i);
$result1=mysqli_query($SQL,"UPDATE `$table` SET `$id_table` = $i+1 WHERE `$id_table` = $liste_id"); }
// Réinitialisation de la variable d'auto-incrémentation à sa valeur minimale $result2=mysqli_query($SQL,"ALTER TABLE `$table` AUTO_INCREMENT = 1");
//--------------------------- Message fin ---------------------------- if (($RESULT1) && ($RESULT2)) { // 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>'; } else { echo '<div align="center" style="color:red; font-weight:bold; ">** ERREUR ** Sur la réindexation de la table `'.$table.'`** ERREUR ** </div>'; } //----------------- Ferme le jeu de résultats ------------------------ mysqli_free_result($result); mysqli_close($SQL); }
A voir également:
Object of class mysqli_result could not be converted to string
Call to undefined function mysqli_result() - Meilleures réponses
Uncaught error: object of class mysqli_result could not be converted to string in - Meilleures réponses
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024345 Modifié par jordane45 le 7/03/2016 à 14:31
Bonjour,
Essaye ça :
// 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"<center>";
printf("Le jeu de résultats a %d lignes.\n", $nbre_ligne);
echo"</center>";
//On parcours 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
mysqli_free_result($result);
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>';
claude77260
Messages postés38Date d'inscriptiondimanche 8 août 2010StatutMembreDernière intervention13 janvier 2019 7 mars 2016 à 15:24
merci jordane45
çà fonctionne parfaitement et je te remercie vivement de ton apport qui peux servir à d'autres
Bonne journée
cordialement
jordane45
Messages postés38238Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 septembre 2024345 7 mars 2016 à 15:34
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)