Mysqli_result($result,$i);

Résolu
claude77260 Messages postés 38 Date d'inscription dimanche 8 août 2010 Statut Membre Dernière intervention 13 janvier 2019 - Modifié par claude77260 le 7/03/2016 à 14:16
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 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:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
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>';


Cordialement, 
Jordane                                                                 
0
Rejoignez-nous