Pourquoi ma requete s'arrete?

Pourquoi ma requete s'arrete? - PHP - Programmation

Marsh Posté le 01-09-2010 à 16:11:08    

Bonjour
 
Ma requete s'arrete apres 15 requete array est ce normal et comment faire pour en ajouter plus...? merci
 

Code :
  1. // champs à sélectionner / à afficher
  2. $tab_champs = array("id","title","city","note","description","address","phone","website","cap","menu_entree","menu_plat","menu_dessert","youtube_link","resa","horferm","pain","table" );
  3. $chr_champs='';
  4. foreach($tab_champs as $val) $chr_champs.=$val.', ';
  5. $chr_champs=substr($chr_champs,0,-2);
  6. $q = mysql_query("SELECT $chr_champs FROM resto WHERE id='$id_resto'" );
  7. $r = mysql_fetch_assoc($q);
  8. $quser = mysql_query("SELECT id_user FROM users_restos WHERE id_resto='$r[id]'" );
  9. $ruser = mysql_fetch_assoc($quser);
  10. }
  11. ....///...
  12. <p><span class="vio">Appeler le Restaurant: </span><?=format_champvide($r["$tab_champs[6]"],'nr');?></p>
  13.                     <p><span class="vio">Site Internet du Restaurant: </span><?=format_champvide($r["$tab_champs[7]"],'nr');?></p>
  14.     <p><span class="vio">Horaires: </span><?=format_champvide($r["$tab_champs[14]"],'nr');?></p>
  15.     <p><span class="vio">Qualité du pain: </span><?=format_champvide($r["$tab_champs[15]"],'nr');?></p>
  16.     <p><span class="vio">Les Tables sont: </span><?=format_champvide($r["$tab_champs[16]"],'nr');?></p>


 
 
Voilà le message d'erreur
 
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /homez.187/youresto/www/fiche.php on line 20
 
ligne correspond à l'array
 
Merci

Reply

Marsh Posté le 01-09-2010 à 16:11:08   

Reply

Marsh Posté le 01-09-2010 à 17:08:34    

foreach($tab_champs as $val) $chr_champs.=$val.', ';
 
T'as entendu parler de la fonction implode() :o
 
edit : ligne 10, je vois } mais impossible de trouver quel bloc elle ferme :??:


Message édité par rufo le 01-09-2010 à 17:09:51

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 01-09-2010 à 18:32:50    

Voilà la ligne 10
 
et implode je vois pas dsl
 

Code :
  1. $id_resto=$_GET["id"];
  2. $query_exists = mysql_query("SELECT COUNT(id) FROM resto WHERE id='$id_resto'" );
  3. $result_exists = mysql_fetch_row($query_exists);
  4. if ($result_exists[0]==0)
  5. {
  6. header("HTTP/1.1 301 Moved Permanently" );
  7. header("Location: index.php" );
  8. die("Redirection" );
  9. }
  10. else
  11. {
  12.  // champs à sélectionner / à afficher
  13. $tab_champs = array("id","title","city","note","description","address","phone","website","cap","menu_entree","menu_plat","menu_dessert","youtube_link","resa","horferm","pain" );
  14. $chr_champs='';
  15. foreach($tab_champs as $val) $chr_champs.=$val.', ';
  16. $chr_champs=substr($chr_champs,0,-2);
  17. $q = mysql_query("SELECT $chr_champs FROM resto WHERE id='$id_resto'" );
  18. $r = mysql_fetch_assoc($q);
  19. $quser = mysql_query("SELECT id_user FROM users_restos WHERE id_resto='$r[id]'" );
  20. $ruser = mysql_fetch_assoc($quser);
  21. }

Reply

Marsh Posté le 02-09-2010 à 10:29:06    

Affiche ta requete de cette ligne avec un echo  
 

Code :
  1. $quser = mysql_query("SELECT id_user FROM users_restos WHERE id_resto='$r[id]'" );


 
Si ça se trouve aucun resto ne correspond à l'id_resto qui est dans ta variable $r[id]
 
Pour implode, http://php.net/manual/fr/function.implode.php  ;)


---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
Reply

Marsh Posté le 02-09-2010 à 10:41:12    

Oui j'ai vu le manuel mais ça me parle pas...
 
Et tous les ID sont renseignées... :-(

Reply

Marsh Posté le 02-09-2010 à 10:42:46    

le truc est que si je ne demande que 15 afficheges , c'est ok, la page s'affiche correctement, au delà ça plante et j'ai l'erreur
 
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /homez.187/youresto/www/fiche.php on line 20

Reply

Marsh Posté le 02-09-2010 à 10:50:25    

lebrat a écrit :

le truc est que si je ne demande que 15 afficheges , c'est ok, la page s'affiche correctement, au delà ça plante et j'ai l'erreur
 
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /homez.187/youresto/www/fiche.php on line 20


 
 
En fait l'erreur ligne 20, ça correspond pas à la ligne 20 dans ta citation. Quelle est la ligne de code correspondant à la ligne 20 dans ton code ?
J'ai l'impression qu'il manque une partie de ton code car tu veux afficher 15 résultats (avec une boucle je suppose ^^), mais on ne voit pas cette boucle, c'est dur de t'aider si il nous manque une partie importante du code.
 
Pour la fonction implode, regarde les exemples qui sont en dessous du manuel, tu vas vite comprendre comment ça marche et comment tu peux l'utiliser dans ton code.


---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
Reply

Marsh Posté le 02-09-2010 à 11:02:33    

Voilà un code un peu plus complet. Le truc c'est que ça marche avec 15 array , au 16eme ça plante...Merci , je tourne en rond , je ne vois pas comment utiliser implode.... :-(
 

Code :
  1. $id_resto=$_GET["id"];
  2. $query_exists = mysql_query("SELECT COUNT(id) FROM resto WHERE id='$id_resto'" );
  3. $result_exists = mysql_fetch_row($query_exists);
  4. if ($result_exists[0]==0)
  5. {
  6. header("HTTP/1.1 301 Moved Permanently" );
  7. header("Location: index.php" );
  8. die("Redirection" );
  9. }
  10. else
  11. {
  12.  // champs à sélectionner / à afficher
  13. $tab_champs = array("id","title","city","note","description","address","phone","website","cap","menu_entree","menu_plat","menu_dessert","youtube_link","resa","horferm","pain" );
  14. $chr_champs='';
  15. foreach($tab_champs as $val) $chr_champs.=$val.', ';
  16. $chr_champs=substr($chr_champs,0,-2);
  17. $q = mysql_query("SELECT $chr_champs FROM resto WHERE id='$id_resto'" );
  18. $r = mysql_fetch_assoc($q);
  19. $quser = mysql_query('SELECT id_user FROM users_restos WHERE id_resto=\'' . $r['id'] . '\'');
  20. $ruser = mysql_fetch_assoc($quser);
  21. }
  22. ....////....///...
  23. ....////....///...
  24. <div id="adr"><strong>Adresse:</strong><br /><?=$r["$tab_champs[5]"];?><br /><?=$r["$tab_champs[8]"];?> <?=$r["$tab_champs[2]"];?>
  25.                  
  26.                     <p><span class="vio">Appeler le Restaurant: </span><?=format_champvide($r["$tab_champs[6]"],'nr');?></p>
  27.                     <p><span class="vio">Site Internet du Restaurant: </span><?=format_champvide($r["$tab_champs[7]"],'nr');?></p><br>
  28.     <p><span class="vio">Horaires: </span><?=format_champvide($r["$tab_champs[14]"],'nr');?></p><br>
  29.     <p><span class="vio">Qualité du pain: </span><?=format_champvide($r["$tab_champs[15]"],'nr');?></p>

Reply

Marsh Posté le 02-09-2010 à 11:14:55    

Je veux bien t'aider mais il faudrait que tu lises ce que je t'écris XD
 
Je te demande à quelle ligne correspond la ligne 20 dans ton code, vu que là ton script n'est toujours pas complet je n'ai pas moyen de savoir si tu as des lignes avant ou pas.
Je te demande également de mettre le bout de code où il y a ta boucle. Hors la seule boucle que je vois c'est celle là

Code :
  1. foreach($tab_champs as $val) $chr_champs.=$val.', ';

qui peut être remplacer par implode, que je maintiens tu peux comprendre facilement si tu passes 15 / 20mn (et encore je suis large) sur l'exemple se trouvant à l'url que je t'ai donné. De toute façon c'est pas implode qui réglera ton problème, on te dit juste ça pour te faire progresser.
 
Donc, peux tu me dire à quelle ligne correspond la ligne 20 et me montrer le bout de code ou tu fais ta boucle ?


---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
Reply

Marsh Posté le 02-09-2010 à 15:34:09    

Excuses j'avais pas percuté ; la ligne 20 correspond à  
$r = mysql_fetch_assoc($q);
 
je vais me pencher sur implode

Reply

Marsh Posté le 02-09-2010 à 15:34:09   

Reply

Marsh Posté le 02-09-2010 à 15:58:33    

lebrat a écrit :

Excuses j'avais pas percuté ; la ligne 20 correspond à  
$r = mysql_fetch_assoc($q);
 
je vais me pencher sur implode


 
 
Est ce que tu pourrais me mettre le code autour que je vois à quoi correspond le $q et que je vois la boucle ?


---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
Reply

Marsh Posté le 02-09-2010 à 17:20:42    

Tiens tu as presque toute la feuille...
 
 

Code :
  1. $id_resto=$_GET["id"];
  2. $query_exists = mysql_query("SELECT COUNT(id) FROM resto WHERE id='$id_resto'" );
  3. $result_exists = mysql_fetch_row($query_exists);
  4. if ($result_exists[0]==0)
  5. {
  6. header("HTTP/1.1 301 Moved Permanently" );
  7. header("Location: index.php" );
  8. die("Redirection" );
  9. }
  10. else
  11. {
  12.  // champs à sélectionner / à afficher
  13. $tab_champs = array("id","title","city","note","description","address","phone","website","cap","menu_entree","menu_plat","menu_dessert","youtube_link","resa","horferm","pain" );
  14. $chr_champs='';
  15. foreach($tab_champs as $val) $chr_champs.=$val.', ';
  16. $chr_champs=substr($chr_champs,0,-2);
  17. $q = mysql_query("SELECT $chr_champs FROM resto WHERE id='$id_resto'" );
  18. $r = mysql_fetch_assoc($q);
  19. $quser = mysql_query('SELECT id_user FROM users_restos WHERE id_resto=\'' . $r['id'] . '\'');
  20. $ruser = mysql_fetch_assoc($quser);
  21. }
  22. // mise a jour des affichages du resto
  23. mysql_query("UPDATE resto SET hits=hits+1 WHERE id='$id_resto'" );
  24. if ($_SESSION["config_user"]["id_user"]>0 && $_SESSION["config_user"]["id_user"]!=$ruser["id_user"] && $_SESSION["fiche_"."$id_resto"]!="visited" )
  25. {
  26. $qf = mysql_query("SELECT fiche FROM fidelite_config" );
  27. $rf = mysql_fetch_assoc($qf);
  28. mysql_query("UPDATE users_fidelite SET fiche=fiche+'".$rf["fiche"]."' WHERE id_user='".$_SESSION["config_user"]["id_user"]."'" );
  29. mysql_query("UPDATE users SET points=points+".$rf["fiche"]." WHERE id_user='".$_SESSION["config_user"]["id_user"]."'" );
  30. mysql_query("INSERT INTO fidelite_log SET id_user='".$_SESSION["config_user"]["id_user"]."', type='fiche', points='".$rf["fiche"]."', date=NOW()" );
  31. $_SESSION["fiche_"."$id_resto"]="visited";
  32. }
  33. ?>
  34. .......................////////////
  35. ///////............................
  36. <p id="logo"><a href="index.php" title="Trouvez votre restaurant avec Youresto.com"><img src="logo.png" alt="Bienvenue sur Youresto.com"></a></p>
  37. <? include("search.inc.php" ); ?>
  38.     <h2 id="total">Restaurant à <strong><?=$r["$tab_champs[2]"];?> Restaurant <?=$r["$tab_champs[1]"];?> </strong></h2>
  39.     <table width="100%" cellpadding="0" cellspacing="0" border="0" id="tfiche">
  40.      <tr>
  41.       <td style="vertical-align:top;">
  42.                 <div id="details2">
  43.                    
  44.                     <h1>Restaurant à <?=$r["$tab_champs[2]"];?><br /><?=$r["$tab_champs[1]"];?> </h1>
  45.     <?
  46.      if(trim($r["youtube_link"])!='')
  47.      {
  48.      ?>
  49.                         <div id="video">
  50.                         <object width="400" height="260"><param name="movie" value="<?=$r["youtube_link"];?>"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><param name="wmode" value="transparent" /></param><embed src="<?=$r["youtube_link"];?>" type="application/x-shockwave-flash" allowscriptaccess="always" wmode="transparent" allowfullscreen="true" width="400" height="260"></embed></object>
  51.                         </div>
  52.                         <?
  53.      }
  54.      ?>
  55.                     <?
  56.                     if ($r["$tab_champs[4]"]!='')
  57.                     {
  58.                         echo '<h3>'.stripslashes($r["$tab_champs[4]"]).'</h3>';
  59.                     }
  60.                     else
  61.                     {
  62.                         echo '<h3 class="underline">aucune description disponible</h3>';
  63.                     }
  64.                     ?>
  65.     <br /><br />
  66.                     <div id="adr"><strong>Adresse:</strong><br /><?=$r["$tab_champs[5]"];?><br /><?=$r["$tab_champs[8]"];?> <?=$r["$tab_champs[2]"];?>
  67.                  
  68.                     <p><span class="vio">Appeler le Restaurant: </span><?=format_champvide($r["$tab_champs[6]"],'nr');?></p>
  69.                     <p><span class="vio">Site Internet du Restaurant: </span><?=format_champvide($r["$tab_champs[7]"],'nr');?></p><br>
  70.     <p><span class="vio">Horaires: </span><?=format_champvide($r["$tab_champs[14]"],'nr');?></p><br>
  71.     <p><span class="vio">Qualité du pain: </span><?=format_champvide($r["$tab_champs[15]"],'nr');?></p>
  72.                 </div>
  73.                 <div id="commentaires">
  74.                     <h1>Commentaires sur le restaurant</h1>
  75.                     <?
  76.                     $qc = mysql_query("SELECT COUNT(id_commentaire) FROM commentaires WHERE id_resto='$id_resto' AND valid='y'" );
  77.                     $rc = mysql_fetch_row($qc);
  78.                     if ($rc[0]>0)
  79.                     {
  80.                         $qc = mysql_query("SELECT * FROM commentaires WHERE id_resto='$id_resto' AND valid='y' ORDER BY date DESC" );
  81.                         while ($rc = mysql_fetch_assoc($qc))
  82.                         {
  83.                         ?>
  84.                         <div class="commentaire">
  85.                             <p class="qui vio">&raquo; <strong><?=htmlentities($rc["pseudo"]);?></strong>, le <?=format_date($rc["date"]);?></p>
  86.                             <p class="com"><?=htmlentities(stripslashes($rc["commentaire"]));?></p>
  87.                         </div>

Reply

Marsh Posté le 03-09-2010 à 11:10:09    

Soit je suis pas réveillé soit tu ne m'as toujours pas envoyé tout le code.
Où se trouve la boucle qui te permet de récupérer et afficher tes 15 lignes de résultats ? XD
Parce que pour moi tu récupères qu'une seule ligne de résultat avec ton  

Code :
  1. $r = mysql_fetch_assoc($q);


Et si tu as l'erreur

Code :
  1. Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /homez.187/youresto/www/fiche.php on line 20


C'est que la requête suivante n'est pas bonne

Code :
  1. $q = mysql_query("SELECT $chr_champs FROM resto WHERE id='$id_resto'" );


Fais un  

Code :
  1. echo "SELECT $chr_champs FROM resto WHERE id='$id_resto'";


Et dis moi ce que cela t'affiche.


---------------
23Prod, Audit et conception de systèmes d'informations : http://www.23prod.fr
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed