Variable $_get dans Mysql_query

Eléphant du PHP | 65 Messages

16 avr. 2006, 16:53

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.

Mammouth du PHP | 19672 Messages

16 avr. 2006, 18:24

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 65 Messages

16 avr. 2006, 18:37

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]

Mammouth du PHP | 19672 Messages

16 avr. 2006, 18:43

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 65 Messages

16 avr. 2006, 18:57

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!! :)

Eléphant du PHP | 65 Messages

16 avr. 2006, 19:11

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 avr. 2006, 19:35

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.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 65 Messages

16 avr. 2006, 19:37

Sa à été fait...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 avr. 2006, 19:40

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 :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 65 Messages

16 avr. 2006, 19:42

Pourtan jai essayer sans la variable get nikel!! sinn a marche pa cest tres bizarre!!

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 avr. 2006, 19:47

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 :wink:

Tu dis que ceci:

Code : Tout sélectionner

SELECT * FROM download WHERE valide =1 ORDER BY id
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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 65 Messages

16 avr. 2006, 19:50

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 avr. 2006, 20:04

tu est sûr que la variable GET passe bien ?
echo "variable de l'URL = ".$_GET['cat'];

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 65 Messages

16 avr. 2006, 20:09

Oui elle passe bien...

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 avr. 2006, 20:28

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 :lol:

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 ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute