Notice Undefined variable [Résolu/Fermé]

Signaler
Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
-
 Utilisateur anonyme -
Bonjour,
Je souhaite mettre en place l'espace membre du site "openclassrooms" qui est par ailleurs très explicite.
J'ai une erreur que je ne comprend pas.
Je souhaiterai quelques explications sur celle-ci.
Pouvez me venir en aide s'ils vous plait.
Je vous remercie très sincérement.
L'erreur est dans cette fonction à la ligne 32
Notice: Undefined variable: query2 in C..............

function sqlquery($requete, $number)
{
 $query = mysql_query($requete) or exit('Erreur SQL : '.mysql_error().' Ligne : '. __LINE__ .'.'); //requête
 queries();
 
 /*
 Deux cas possibles ici :
 Soit on sait qu'on a qu'une seule entrée qui sera
 retournée par SQL, donc on met $number à 1
 Soit on ne sait pas combien seront retournées,
 on met alors $number à 2.
 */
 
 if($number == 1)
 {
  $query1 = mysql_fetch_assoc($query);
  mysql_free_result($query);
  /*mysql_free_result($query) libère le contenu de $query, je
  le fais par principe, mais c'est pas indispensable.*/
  return $query1;
 }
 
 else if($number == 2)
 {
  while($query1 = mysql_fetch_assoc($query))
  {
   $query2[] = $query1;
   /*On met $query1 qui est un array dans $query2 qui
   est un array. Ca fait un array d'arrays :o*/
  }
  mysql_free_result($query);
  return $query2;
 }
 
 else //Erreur
 {
  exit('Argument de sqlquery non renseigné ou incorrect.');
 }
}

2 réponses

Messages postés
277
Date d'inscription
vendredi 11 juin 2010
Statut
Membre
Dernière intervention
19 juin 2016
1
Bonjour
Un grand merci ça marche nickel.
Cordialement
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 60769 internautes nous ont dit merci ce mois-ci

Utilisateur anonyme
De rien :-)

Bonjour

Ta variable $query2 est créée par la ligne
$query2[] = $query1;
à l'intérieur de ton while.
Mais si tu n'entres pas dans le while ? Elle ne peut pas être créée.
Et si le résultat de ta requête est vide, tu n'entres pas dans ton while. Donc pas de $query2.

Il suffit de définir $query2 comme un tableau vide AVANT d'entrer dans le while : il sera ainsi défini dans tous les cas :

...
 else if($number == 2)
 {
  $query2=array();
  while($query1 = mysql_fetch_assoc($query))
  {
   $query2[] = $query1;
...