IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] ma requette ne fonctionne pas


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut [SQL] ma requette ne fonctionne pas
    Bonjour a tous ,
    voila mon probleme j'ai dans ma requette au moins 20 conditions
    mais celle qui me pose un probleme c'est celle qui on des comparaisons
    avec les = ya pas de probleme mais les <= a >=
    dés que j'entre les conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prix>='$prix_debut' and prix<='$prix_fin' and annee=<'$annee_fin' and annee>='annee_debut'
    sa marche plus !!!!!
    quelqu'un a une idée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $recherche=mysql_query(" select cat,souscat,carrosserie_couleur,vehicule_type,prix,annee from annonce where 
    `cat`='$cat' and `souscat`='$souscat'  and  `carrosserie_couleur`='carrosserie_couleur' and `vehicule_type`='$vehicule_type' 
    and  `prix`>='$prix_debut' and `prix`<='$prix_fin' and  `annee`=<'$annee_fin' and `annee`>='annee_debut' ");
     
    mysql_query($recherche) or die("$recherche - " . mysql_error());
     
     while ($resultat= mysql_fetch_array ($recherche))  ligne 279
     
    {
    $cat=$resultat['cat'];
     
     
    }
    erreur :
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /mnt/122/free.fr/4/d/yyyyyyy/xxxxxxxx/
    recherche_et_resultat.php on line 279
    apres les modifs l'erreur affiché est
    Resource id #3 - Query was empty ( j'ai que deux enregistrement dans ma table annonce ) !!!!

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Mets ta requête dans une chaîne de caractère et affiche-la, ainsi que l'erreur mysql (voir point 2 de ma signature)
    Mets les noms de tables et de champs entre backquotes

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    qu'est ce que t'appel mettre la requette dans une chaine de caractére !!

    desolé je debute et comme beaucoup seul

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par nebil
    qu'est ce que t'appel mettre la requette dans une chaine de caractére !!

    desolé je debute et comme beaucoup seul
    au lieu de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("select machin");
    tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = "select machin";
    $result = mysql_query($query) or die($query . " - " . mysql_error());

  5. #5
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    As tu essayer BETWEEN ??

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    bon je comprend rien je recommence tout
    j'ai un formulaire on entre le cat de l'auto le souscat de l'auto
    et le prix mini et le prix maxi

    sa, sa marche .....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $recherche=mysql_query(" select cat,souscat from annonce where 
    cat='$cat' and souscat='$souscat'   ");
     
    while ($resultat= mysql_fetch_array ($recherche))
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    }
    la je recupere bien les cat et souscat parceque il on pour condition =

    mais dés que j'ajoute les entre et entre sa marche plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $recherche=mysql_query(" select cat,souscat from annonce where 
    cat='$cat' and souscat='$souscat' and prix>='prix_debut' and prix<='prix_fin'  ");
    et la ya pas d'erreur qui s'affiche une page blanche pourtant la donnée prix dans la table et= 10000 et le select mini et a 7000 et le select maxi et a 12500 et je recupere bien les valeurs de select dans $prix_debut et $prix_fin

    pour ce qui est des ecritures qui doivent se faire dans les regles de l'art
    svp je suis d'accord ,mais je veux comprendre pk les conditions <> ne fonctionne pas

  7. #7
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par nebil
    et la ya pas d'erreur qui s'affiche
    Parce que tu n'as pas fait ce que je t'ai dit.
    Et si tu modifiais ta requête pour avoir : "select cat, souscat, prix from..." ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    Eusebius , ecris comme sa fonctionne pas meme sans prix !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $recherche=" select cat,souscat from annonce where 
    cat='$cat' and souscat='$souscat'  ";
    $resultat=mysql_query($recherche) or die("$recherche - " . mysql_error());
     
    while ($resultat= mysql_fetch_array ($recherche))
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    }

  9. #9
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Je crois que tu n'as pas compris les principes de bases pour les requêtes... Ou alors c'est des erreurs d'étourderie

    ton mysql_fetch_array, tu l'appliques sur $resultat, et le retour de cette fonction, tu l'appelles autrement !

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    effectivement petite erreur la sa marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $recherche=" select cat,souscat from annonce where 
    cat='$cat' and souscat='$souscat'  ";
    $donne=mysql_query($recherche) or die("$recherche - " . mysql_error());
     
    while ($resultat= mysql_fetch_array ($donne))
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    }
    bon maintenant si j'ajoute l'argument prix comme sa , sa marche aussi
    je recupere le prix puisque les conditions ne reste que sur cat et souscat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $recherche=" select cat,souscat,prix from annonce where 
    cat='$cat' and souscat='$souscat'  ";
    $donne=mysql_query($recherche) or die("$recherche - " . mysql_error());
     
    while ($resultat= mysql_fetch_array ($donne))
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    $prix=$resultat['prix'];
    }


    mais si j'ajoute les conditions prix entre et entre sa marche plus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $recherche=" select cat,souscat,prix from annonce where 
    cat='$cat' and souscat='$souscat'  and prix>='prix_debut' and prix<='$prix_fin' ";
    $donne=mysql_query($recherche) or die("$recherche - " . mysql_error());
     
    while ($resultat= mysql_fetch_array ($donne))
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    $prix=$resultat['prix'];
    }

  11. #11
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $recherche=" select cat,souscat,prix from annonce where 
    cat='$cat' and souscat='$souscat'  and prix between '$prix_debut' and '$prix_fin' ";
    Comme ca ?

    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $recherche=" select cat,souscat,prix from annonce where 
    cat='$cat' and souscat='$souscat'  and prix>='$prix_debut' and prix<='$prix_fin' ";

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    sa marche pas ni l'une ni l'autre , je comprend pas pourtant sa a l'air simple

  13. #13
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par nebil
    sa marche pas ni l'une ni l'autre , je comprend pas pourtant sa a l'air simple
    Ca serait extrêmement aimable de nous afficher le résultat du "or die". Ca doit t'afficher (entre autres) une requête, teste-la dans phpmyadmin

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    en remplacant prix_fin et debut par de vrai valeur ca donne quoi ?

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    obsolument rien ne s'affiche ni erreur ni resulat ,
    avec des valeurs en dur
    >=8000 and <=12000 . (prix de l'auto 10000) rien non plus


    comme sa c plus simple

    dans la table il y a deux enregistrements
    les deux on pour marque mercedes 560 pour 10000 euro

  16. #16
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par nebil
    obsolument rien ne s'affiche ni erreur ni resulat ,
    avec des valeurs en dur
    >=8000 and <=12000 . (prix de l'auto 10000) rien non plus
    fais un echo de $recherche, et teste la requête affichée directement dans phpmyadmin (et pis tu nous la montres au passage)

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    requete dans mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Erreur
     
    requête SQL: Documentation
     
    $recherche = " select cat,souscat,prix from annonce where cat='$cat' and souscat='$souscat' and prix between'$prix_debut' and '$prix_fin' "
     
    MySQL a répondu:Documentation
    #1064 - You have an error in your SQL syntax; 
    check the manual that corresponds to your MySQL server 
    version for the right syntax to use near 
    '$recherche=" select cat,souscat,prix from annonce where
    cat='$cat' and souscat' at line 1

    echo de $recherche
    select cat,souscat,prix from annonce where cat='69' and souscat='993' and prix between'1500' and '12500'

  18. #18
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    mets un espace
    between '1500'

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 487
    Points : 113
    Points
    113
    Par défaut
    revoili voila ma requete meme l'espace enlever entre between et '$prix_debut'
    ni change rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    $recherche=" select cat,souscat,prix from annonce where 
    cat='$cat' and souscat='$souscat'  and   prix between '$prix_debut' and '$prix_fin' ";
     
    echo "$recherche"; 
    $donne=mysql_query($recherche) or die("$recherche - " . mysql_error());
    while ($resultat= mysql_fetch_array ($donne))
     
    {
    $cat=$resultat['cat'];
    $souscat=$resultat['souscat'];
    $annee=$resultat['annee'];
    $prix=$resultat['prix'];
    }
    l'erreur affiche dans mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Erreur
     
    requête SQL: Documentation
     
    $recherche = " select cat,souscat,prix from annonce where cat='$cat' and souscat='$souscat' and prix between'$prix_debut' and '$prix_fin' "
     
    MySQL a répondu:Documentation
    #1064 - You have an error in your SQL syntax; 
    check the manual that corresponds to your MySQL server 
    version for the right syntax to use near 
    '$recherche=" select cat,souscat,prix from annonce where
    cat='$cat' and souscat' at line 1
    echo de $recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select cat,souscat,prix from annonce where cat='69' and souscat='993' and prix between '1500' and '12500'

  20. #20
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu pourrais tester correctement (sans le "$recherche = ...") ta requête dans phpmyadmin ? Qu'on sache s'il y a une erreur ou pas.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Deux méthodes SQL dont une ne fonctionne pas ?
    Par bybelos33 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/03/2009, 15h12
  2. Ma chaine sql sous asp ne fonctionne pas
    Par beegees dans le forum ASP
    Réponses: 3
    Dernier message: 23/04/2008, 09h05
  3. Compte sql server qui ne fonctionne pas
    Par benblood dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/02/2008, 18h16
  4. [SQL] La requête ne fonctionne pas
    Par Neuromancien2 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/04/2007, 10h52
  5. [SQL] requête qui ne fonctionne pas
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/03/2007, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo