Page 1 sur 2
Variable $_get dans Mysql_query
Posté : 16 avr. 2006, 16:53
par flotix
Bonzour à tous!!
Voilà un petit problème d'ou je ne voit pas bien le problème donc voici l'erreur recu:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/11/d142293357/htdocs/jeuxvideo-fr/archives_dl_console.php on line 100
et voici le code php:
$retour = mysql_query('SELECT * FROM download WHERE valide="1" AND categorie=' . $_GET['cat'] . ' ORDER BY id ');
while ($donnees = mysql_fetch_array($retour))
{
Merci à ceux qui m'aideront.
Posté : 16 avr. 2006, 18:24
par Cyrano
L'erreur est probablement dans la requête : si le champ categorie contient des chaines de caractères, alors tu dois modifier comme ceci:
$retour = mysql_query("'SELECT * FROM download WHERE valide=1 AND categorie='". $_GET['cat'] ."' ORDER BY id ");
while ($donnees = mysql_fetch_array($retour))
Et autour d'un entier en revanche, pas besoin de guillemets ni d'apostrophes.
Posté : 16 avr. 2006, 18:37
par flotix
Toujours le même problème...
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homepages/11/d142293357/htdocs/jeuxvideo-fr/archives_dl_console.php on line 100
Peut être devrais-je indiquer la variable get autrement faire genre:
get_[cat] = $cat
Que faire? :-/[/php]
Posté : 16 avr. 2006, 18:43
par Cyrano
Ok, alors on recommence mais on sépare la création de la requête de son exécution et on intercale un affichage:
$sql = "SELECT * FROM download WHERE valide=1 AND categorie='". $_GET['cat'] ."' ORDER BY id ";
echo($sql);
$retour = mysql_query($sql);
while ($donnees = mysql_fetch_array($retour))
Vérifie ta requête à l'écran, copie et colle dans une invite SQL dans phpMyAdmin pour avoir un retour explicite.
Posté : 16 avr. 2006, 18:57
par flotix
Pour l'instant ma base est vide donc:
MySQL n'a retourné aucun enregistrement. (traitement: 0.0008 sec.)
requête SQL:
SELECT *
FROM download
WHERE valide =1
AND categorie = 'ps2'
ORDER BY id
J'ai essayer avec un enregistrement en selectionnant la bonne catégorie bien sur et aucun enregistrement non plus!! :s mais en enlevant le echo($sql) je n'ai aucune erreur!!

Posté : 16 avr. 2006, 19:11
par flotix
mais toujours rien d'afficher
J'ai tester sans variables en get sa marche nikel!! Donc je ne voit pas trop se que serait le problème...
Posté : 16 avr. 2006, 19:35
par Truc
Pour l'instant ma base est vide donc
(...)
J'ai essayer avec un enregistrement en selectionnant la bonne catégorie
Remplis la table correctement avec plusieurs valeurs de test puis effectue un test avec une catégorie enregistrée ET ayant le champ "valid" à 1.
Posté : 16 avr. 2006, 19:37
par flotix
Sa à été fait...
Posté : 16 avr. 2006, 19:40
par Truc
si tu exécutes cette requête:
Code : Tout sélectionner
SELECT *
FROM download
WHERE valide =1
AND categorie = 'ps2'
ORDER BY id
dans phpmyadmin et que tu n'obtiens pas de résultat alors tu n'as pas d'enregistrement qui y correspond

Posté : 16 avr. 2006, 19:42
par flotix
Pourtan jai essayer sans la variable get nikel!! sinn a marche pa cest tres bizarre!!
Posté : 16 avr. 2006, 19:47
par Truc
Il faut que tu apportes d'autrs éléments pour arranger l'affaire, un "ça marche pas", "non, tjs pas mieux" ne sert pas des masses
Tu dis que ceci:
fonctionnes ?! => donne des enregistrements en retour.
mais que ceci:
Code : Tout sélectionner
SELECT *
FROM download
WHERE valide =1
AND categorie = 'ps2'
ORDER BY id
ne donne plus rien
Posté : 16 avr. 2006, 19:50
par flotix
SELECT *
FROM download
WHERE valide =1
AND categorie = 'ps2'
ORDER BY id
ceci donne ne donne rien mais marche quan on inscrit ps2 tt court si on le fet par variable celà ne donne rien...
Mais direct dans mysql rien non plus donc c'est bizarre...
Posté : 16 avr. 2006, 20:04
par Truc
tu est sûr que la variable GET passe bien ?
echo "variable de l'URL = ".$_GET['cat'];
Posté : 16 avr. 2006, 20:09
par flotix
Oui elle passe bien...
Posté : 16 avr. 2006, 20:28
par Truc
Bon et bien voilà c'est fait on a trouvé le 1er Homme possédant une machine flemmarde et feignante qui ne veux pas faire ce qu'on lui ordonne
On reprend doucement:
Quel est le type du champ "categorie" ?
l'affichage de la requête donne quoi ? => echo $sql;
tu as bien écris "$_GET" et non "$_get" ou autre ?