Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Pourquoi ma requete s'arrete?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Pourquoi ma requete s'arrete?

n°2020442
lebrat
Posté le 01-09-2010 à 16:11:08  profilanswer
 

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

mood
Publicité
Posté le 01-09-2010 à 16:11:08  profilanswer
 

n°2020475
rufo
Pas me confondre avec Lycos!
Posté le 01-09-2010 à 17:08:34  profilanswer
 

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
n°2020506
lebrat
Posté le 01-09-2010 à 18:32:50  profilanswer
 

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. }

n°2020649
FlyPhp
Posté le 02-09-2010 à 10:29:06  profilanswer
 

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
n°2020651
lebrat
Posté le 02-09-2010 à 10:41:12  profilanswer
 

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

n°2020653
lebrat
Posté le 02-09-2010 à 10:42:46  profilanswer
 

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

n°2020655
FlyPhp
Posté le 02-09-2010 à 10:50:25  profilanswer
 

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
n°2020658
lebrat
Posté le 02-09-2010 à 11:02:33  profilanswer
 

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>

n°2020660
FlyPhp
Posté le 02-09-2010 à 11:14:55  profilanswer
 

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
n°2020764
lebrat
Posté le 02-09-2010 à 15:34:09  profilanswer
 

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

mood
Publicité
Posté le 02-09-2010 à 15:34:09  profilanswer
 

n°2020767
FlyPhp
Posté le 02-09-2010 à 15:58:33  profilanswer
 

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
n°2020791
lebrat
Posté le 02-09-2010 à 17:20:42  profilanswer
 

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>

n°2020958
FlyPhp
Posté le 03-09-2010 à 11:10:09  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Pourquoi ma requete s'arrete?

 

Sujets relatifs
Access2003+état requete analyse croisée avec nombre champs variablesUn résultat en trop dans ma requête
Requête asynchrone (comment attendre ?)Problème requête PDO
[SQL] Une requete bien compliquée[RESOLU] Requête SQL avec traitement d'un champ date
[RESOLU]Stocker le résultat d'une requête dans un tableauProblème de requête sql
Requête résultat aléatoirerequete BO webi durée
Plus de sujets relatifs à : Pourquoi ma requete s'arrete?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR