Erreur SQL - Débuggage ? - Programmation
Dans la même thématique :
Ceci répond-il à votre question ? Oui | Non
 

Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Erreur SQL - Débuggage ?
 
Profil : IDNaute
Plus d'informations

Bonsoir,
 
<attention>Pour les personnes aimant les GROS défis...</attention>
 
J'ai un gros problème... Et la preuve qu'un code ultra simple arrive quand même à vous foirer votre soirée.  
 
Voici le code en question :  
 
<code type="php"> $ngal_id = $_GET['affichgalerie'];
 print("ID : $ngal_id<br/>" );
 
 //$retour = mysql_query('SELECT * FROM t_name_galeries WHERE ngal_chemin ='.$ngal_id) or die(mysql_error());
 $retour = mysql_query('SELECT * FROM t_name_galeries WHERE ngal_chemin =\''.$ngal_id.'\'') or die(mysql_error());
 $donnees = mysql_fetch_array($retour);
 
 print("<br/>print_r de donnees :" );
 print_r($donnees);
 print("<br/>print_r de retour :" );
 print_r($retour);
 
 $ngal_chemin = $donnees['ngal_chemin'];
 $ngal_name = $donnees['ngal_name'];
 
print("<br/>CHEMIN : $ngal_chemin<br/> NAME : $ngal_name" ); </code>
 
A priori tout devrait fonctionner. (le print_r servait de test). Mais non, dans print_r($retour), il ne me sort rien. (print_r($donnees)) il me donne : Result ID #7).
 
Donc pour info, il ne me retourne rien (comme si les champs de ma BDD étaient vides). Alors que le $ngal_id est correct.
J'ai vérifié 100fois ma base de donnée, ce n'est pas une faute de frappe ! (je vous le garanti).
 
 
Voici donc les tests que j'ai fais (afin que vous sachiez déjà ce que j'ai tenté)
 
Première idée :  
<code type="php">$ngal_id = $_GET['affichgalerie'];
 print("ID : $ngal_id<br/>" );
 
$sql = "SELECT * FROM t_name_galeries WHERE ngal_chemin='$ngal_id'";
 
 $retour = mysql_query($sql) or die(mysql_error());
 $donnees = mysql_fetch_array($retour);
 
 print("<br/>print_r de donnees :" );
 print_r($donnees);
 print("<br/>print_re de retour :" );
 print_r($retour);
 
 $ngal_chemin = $donnees['ngal_chemin'];
 $ngal_name = $donnees['ngal_name'];
 print("<br/>CHEMIN : $ngal_chemin<br/> NAME : $ngal_name" );  
</code>
Il me sort exactement qu'avec l'idée initiale.
 
 
Deuxième idée :  
 
<code type="php">$ngal_id = $_GET['affichgalerie'];
 print("ID : $ngal_id<br/>" );
 
$sql = "SELECT * FROM t_name_galeries WHERE ngal_chemin='$ngal_id'";
 
 if($retour = mysql_query($sql))
  die(mysql_error());
 else
  if($donnees = mysql_fetch_array($retour))
   print "c'est bon";
  else
   print "c'est pas bon";
 
 print("<br/>print_r de donnees :" );
 print_r($donnees);
 print("<br/>print_re de retour :" );
 print_r($retour);
 
 $ngal_chemin = $donnees['ngal_chemin'];
 $ngal_name = $donnees['ngal_name'];
 
 
 print("<br/>CHEMIN : $ngal_chemin<br/> NAME : $ngal_name" ); </code>
 
 
3ème idée :  
 
<code type="php">$ngal_id = $_GET['affichgalerie'];
 print("ID : $ngal_id<br/>" );
 $sql = "SELECT * FROM t_name_galeries WHERE ngal_chemin='$ngal_id'";
 
  if(!($retour = mysql_query($sql)))
  print "CA MARCHE PAS!";
 
 if(!($donnees = mysql_fetch_array($retour)))
  print "c'est pas bon";
 
 print("<br/>print_r de donnees :" );
 print_r($donnees);
 print("<br/>print_re de retour :" );
 print_r($retour);
 
 $ngal_chemin = $donnees['ngal_chemin'];
 $ngal_name = $donnees['ngal_name'];
 
 print("<br/>CHEMIN : $ngal_chemin<br/> NAME : $ngal_name" );</code>
Retour du if : "c'est pas bon"
 
4ème idée (pour cerner l'erreur) :  
 
<code type="php"> $nb_img= mysql_query("SELECT * FROM t_name_galeries" );
 if (!$nb_img)  
 {
  $message = 'Requête invalide : ' . mysql_error() . "\n";
  die($message);
 }
 
  $result= mysql_fetch_assoc($nb_img);
  $row = mysql_fetch_array($result);
 
  echo 'ca marche';
  echo "<pre>";print_r($row);echo "</pre>";
   
  $ngal_chemin = $row['ngal_chemin'];
  $ngal_name = $row['ngal_name'];
print("<br/>CHEMIN : $ngal_chemin<br/> NAME : $ngal_name" );</code>
 
Retour : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/jeunesse-echallens.ch/httpdocs/include/affiche_galerie.inc.php on line 86
 
Donc voilà. Avec un pote on en est arrivé à la conclusion que c'est le serveur qui foire. Etonnant, mais je ne vois pas d'autres possibilités.  
 
Peut-être que nous sommes passés à côté de quelque chose, alors si quelqu'un peu nous aider...  
 
Merci d'avance ! :-)


---------------
[URL=http://img410.imageshack.us/img410/6029/signaturecopieid7.jpg][/URL]
Liens

Ca sent le roussi ... Vous pensez comme moi ?
Profil : IDNaute
Plus d'informations

heuuu ... C'est soit moi soit la fatigue, mais je vois une quote que je n'explique pas trop ...
 
$retour = mysql_query('SELECT * FROM t_name_galeries WHERE ngal_chemin =\''.$ngal_id.'\'')
 
Celle en rouge pétant ! Logiquement elle devrait se trouver après ta double quote ... Du coup je pense que ca te donne la valeur de la variable avec une quote : il ne risque pas de trouver grand chose  
 
=/
 
essaye ca voir : $retour = mysql_query('SELECT * FROM t_name_galeries WHERE ngal_chemin =\''.$ngal_id.\''')


Message édité par cameleon1s t le 28-04-2008 à 23:05:28
Profil : IDNaute
Plus d'informations

Déjà essayé, le problème ne vient pas de là (j'ai essayé une trentaine de syntaxes différentes...)  
 
Si c'était effectivement une erreur du genre, le "or die(mysql_error());" m'aurait retourné quelque chose...
 
Merci quand même :-)


---------------
[URL=http://img410.imageshack.us/img410/6029/signaturecopieid7.jpg][/URL]
Ca sent le roussi ... Vous pensez comme moi ?
Profil : IDNaute
Plus d'informations

Je ferais comme ca :
 

Code :
  1. <?php
  2.     $ngal_id = $_GET['affichgalerie'];
  3.     $requete = mysql_query('SELECT * FROM t_name_galeries WHERE ngal_chemin =\".$ngal_id.\"');
  4.     while($ligne = mysql_fetch_array($requete))
  5.     {
  6.         $ngal_chemin = $ligne["ngal_chemin"];
  7.         $ngal_name = $ligne["ngal_name"];
  8.     }
  9. ?>


Aller à :
Ajouter une réponse
  FORUM Infos-du-Net » Programmation » Erreur SQL - Débuggage ?
 

Liens