Mysqli_result($result,$i); [Résolu]

Signaler
Messages postés
38
Date d'inscription
dimanche 8 août 2010
Statut
Membre
Dernière intervention
13 janvier 2019
-
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
-
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);
}

2 réponses

Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
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>';


Cordialement, 
Jordane                                                                 
Messages postés
38
Date d'inscription
dimanche 8 août 2010
Statut
Membre
Dernière intervention
13 janvier 2019

merci jordane45

çà fonctionne parfaitement et je te remercie vivement de ton apport qui peux servir à d'autres

Bonne journée

cordialement
Messages postés
32980
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2021
351
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)

Cordialement,
Jordane