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] Problème de requête


Sujet :

PHP & Base de données

  1. #1
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut [SQL] Problème de requête
    Bonjour,

    sur mon site, j'ai développé un système de catégorie très basic.
    Lorsque j'introduis un article dans ma base, celui-ci s'accompagne d'un champ "category".

    J'ai généré dans une colonne, toutes les catégories, avec un SELECT DISTINCT.
    & généré un chemin de type : articles.php?cat=categorieA

    De l'autre côté sur ma page articles.php

    j'ai fait une ou deux conditions pour vérifier que le visiteur est bien issu du menu, et mis mes requêtes pour sélectionner tous les articles dont la catégorie est "categorieA".

    ma requête :

    mysql_query("SELECT * from articles WHERE category='categorieA' LIMIT 0,10") or die(mysql_error());

    ( requête après un echo ) ne me retourne rien, pas d'erreur, & surtout pas de contenu.

    J'affiche le contenu avec un while($res = mysql_fetch_array($requete)) {
    ( à nouveau pas d'erreur ).

    Si quelqu'un peut éclairer ma lanterne.
    Je l'en remercie d'avance.

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bonsoir,

    Comment extrais tu tes données dans ta boucle while??

  3. #3
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Salut,

    comme d'hab "$res['champ']"

    Cordialement

  4. #4
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Peut-on avoir l'enchaînement du code au lieu de 2/3 bribes par ci par là ?

    Tu es sûr au moins d'avoir des articles pour cette catégorie ?

  5. #5
    Membre éclairé Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Par défaut
    Citation Envoyé par Him Voir le message
    Salut,
    comme d'hab "$res['champ']"
    Cordialement
    Vaux mieux utiliser mysql_fetch_assoc si tu fais ça, c'est un peu moins violent.

  6. #6
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    @ linio : oui d'accord, la ce sont les tests pour mettre en place, après j'optimise.

    @ Amara : oui pas de problèmes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
     	require_once('inc/bdd_utils.php');
    	require_once('inc/config_sql.php');
     
    		if(!empty($_GET['cat'])) {
    				$category = htmlentities($_GET['cat']);
    				$connexion = connexion(NOM, PASS, BASE, SERVEUR);
    				$requete = mysql_query("SELECT * from articles WHERE category='$category' LIMIT 0,10") or die(mysql_error());
    				echo 'mysql_query("SELECT * from articles WHERE category=\''.$category.'\' LIMIT 0,10") or die(mysql_error());';
    				while ($res = mysql_fetch_array($requete)) {
    ?>
    Ensuite, j'affiche en html le code de ma "boite" d'article.
    avec des codes comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <big><?php echo $res['movie_name']; ?></big>
    et en fin :

    [code]<?php }} ?>

    Re@Ramara : oui je suis sur qu'il y a des données ( au moins 10 ) dans la base avec la catégorie testée.

  7. #7
    Membre chevronné Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Par défaut
    Le meilleur moyen de voir d'où vient l'erreur est encore le débugage !! alors teste en mettant des echo un peu partout pour voir si ca passe dans ton $_GET, dans ton while, la gueule de la requete que tu teste ensuite directement dans MYSQL. ...

    Tiens nous au courant ensuite

  8. #8
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Le echo de ta requête t'affiche bien quelque chose ?

  9. #9
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    @ binouz... relis...
    @ Amara : oui, le echo donne ceci : ( indiqué en début de post )

    mysql_query("SELECT * from articles WHERE category='categorieA' LIMIT 0,10") or die(mysql_error());

    & mon get donne bien 'categorieA' ( pour répondre à binouz )
    et il y a bien une dizaine d'articles avec 'categorieA' dans le champ 'category' de ma base de donnée !

  10. #10
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    bah,

    essai avec un extract() pour voir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while ($res = mysql_fetch_array($requete)) {
     
        extract($res);    
        echo "<big>$movie_name</big>";//si movie_name est bien le titre d'un champs!!
     
    }
    ++

  11. #11
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Je ne connaissais pas cette fonction, je l'appliquerai plus souvent.
    mais cela ne résouts en rien le problème.

    Alors j'ai appliqué manuellement ma requête dans phpmyadmin,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from videos WHERE category='categorie1' LIMIT 0,10
    & celui-ci me retourne :

    "Vous devez choisir au moins une colonne à afficher"

    ?

  12. #12
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    arf^^,

    On va y arriver...

    Quel est la structure de ta table videos?

  13. #13
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    id_video | bigint(20)
    date | date
    movie_name | varchar(255)
    description | text
    short_description | varchar(255)
    duree | varchar(10)
    taille | varchar(4)
    format | varchar(5)
    langue | varchar(5)
    thumb_folder | varchar(50)
    thumb_numb | varchar(5)
    category | varchar(255)

    Cordialement
    ( et merci de prendre du temps pour mon problème )

  14. #14
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    essais voir de tout ressortir de ta table:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $requete = mysql_query("SELECT * from articles LIMIT 0,10") or die(mysql_error());
    echo 'mysql_query("SELECT * from articles LIMIT 0,10") or die(mysql_error());';
     
    while ($res = mysql_fetch_array($requete)) {
     
        extract($res);
        echo "$movie_name - $category<br />";
     
    }
    pour voir si cela ne viens pas de la condition where

    ++

  15. #15
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Il me donne bien 10 titres, avec leurs catégories.
    Dont régulièrement mon fameux 'categorie1'

    ( les 10 mêmes que sur ma page nouveauté ( logique. ) )

    Bah oui, depuis que myadmin m'a retourné que je devais sélectionner une colonne au minimum, je me retourne vers le where.

  16. #16
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    donc si je comprend bien le pb vient du where.
    Il faut que la catégorie que tu lui passe en paramètre existe dans tes enregistrements avec la bonne casse!

    ++

  17. #17
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Bah c'est le cas !

    vu que mes liens, sont générés comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$requete = mysql_query("SELECT DISTINCT category FROM videos order by category ASC", $connexion) or die(mysql_error());
    	while ($res = mysql_fetch_array($requete)) {
    		echo '<img src="img/point.gif" width="10" height="6"> <a href="videos.php?cat='.$res['category'].'" class="L_FUSHIA14">'.$res['category'].'</a><br>';
    	}

    ils existent donc bien, & la casse est IDENTIQUE !
    Je suis désemparer, tout me semble si logique...

  18. #18
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    j'apercois une erreur et elle vient surement de là!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<img src="img/point.gif" width="10" height="6"> <a href="videos.php?cat='.$res["category"].'" class="L_FUSHIA14">'.$res["category"].'</a><br>';
    Tes $res doivent avoir des guillemets et non des apostrophes!!! :p

  19. #19
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Ca devrait rien changer à mon avis enfin bref...

    Vraiment space cette histoire

    Dans l'URL tu vois bien la catégorie comme il faut ?

  20. #20
    Him
    Him est déconnecté
    Membre éclairé Avatar de Him
    Profil pro
    Inscrit en
    Février 2006
    Messages
    244
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 244
    Par défaut
    Oui, les " ou les ' n'y changeront rien.
    ( la preuve dans le query retourné par le echo, qui est bien remplis. )

    Oui je vois bien l'url,
    de toutes façon j'ai mis une condition,
    si l'url n'étais pas un nom de film de la base,
    il affiche : "hahaha"
    & si elle est dedans le contenu.

    mais il ne m'affiche rien... & je ne comprends rien... et visiblement mon code est bon... bref :/ je ne pige pas ce qui se passe

    j'ai même essayé en tappant manuellement l'adresse :

    site.com/videos.php?cat=CategorieA

    & la bien sur cela ne marche plus, car les données sont en GET & pas en POST !

Discussions similaires

  1. [SQL] Problème de requête et <tr>+<td>
    Par ruty dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/08/2006, 09h10
  2. [SQL] Problème bizarre requête date
    Par masseur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2006, 13h12
  3. [Oracle] [SQL] problème de requête
    Par joselito dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 25/01/2006, 12h55
  4. [SQL]problème de requête.
    Par shnouf dans le forum Oracle
    Réponses: 21
    Dernier message: 24/01/2006, 11h12
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 15h07

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