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

claude77260 37 Messages postés dimanche 8 août 2010Date d'inscription 8 octobre 2016 Dernière intervention - 7 mars 2016 à 14:10 - Dernière réponse : jordane45 21033 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 mai 2018 Dernière intervention
- 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);
}
Afficher la suite 

Votre réponse

3 réponses

jordane45 21033 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 mai 2018 Dernière intervention - Modifié par jordane45 le 7/03/2016 à 14:31
0
Utile
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                                                                 
Commenter la réponse de jordane45
claude77260 37 Messages postés dimanche 8 août 2010Date d'inscription 8 octobre 2016 Dernière intervention - 7 mars 2016 à 15:24
0
Utile
merci jordane45

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

Bonne journée

cordialement
jordane45 21033 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 mai 2018 Dernière intervention - 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)

Cordialement,
Jordane
Commenter la réponse de claude77260

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.