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 :

redirection menu déroulant [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut redirection menu déroulant
    Bonjour tout le monde,

    Je me permets de vous solliciter concernant un petit problème...Tout fonctionnait parfaitement hier et aujourd'hui black out total !

    Voici mes tables :

    pour mes articles >>

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    CREATE TABLE news (
      id int(11) NOT NULL auto_increment,
      hid int(11) NOT NULL default '0',
      sid int(11) NOT NULL default '0',
      nom varchar(80) NOT NULL default '',
      spec text NOT NULL,
      photoarticle text NOT NULL,
      visu varchar(4) NOT NULL default '',
      PRIMARY KEY  (id),
      FULLTEXT KEY nom (nom,spec)
    ) TYPE=MyISAM;

    pour mes catégories >>

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE `cat` (
      `id` int(11) NOT NULL auto_increment,
      `nom` varchar(80) NOT NULL default '',
      `visu` varchar(4) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM;

    J'ai un menu déroulant avec lequel je sélectionne une catégorie qui me renvoie (théoriquement) vers l'article correspondant :

    Le code de mon menu déroulant :

    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
     
    <form action="resultats.php" method="post">
            <p>
                  <select name="hid">
                        <?
    		$query = mysql_query("SELECT * FROM cat");  
            while ($row = mysql_fetch_row($query)) {
    		echo "<option name=\"hid\" value=\"$row[0]\">$row[1]</option>";
            }
            ?>
                  </select>
          </p>
            <p>
              <input type=Submit value=Ok>
     
                      </p>
    	</form>
    et ma page résultats où devrait apparaître les articles correspondants :

    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
    18
    19
    20
    21
    22
    23
    24
     
    $search = mysql_query("SELECT news.id,news.nom,news.titre,news.spec,news.photoarticle,news.date,count( * ) AS nombre FROM news JOIN commentaire WHERE news.id = commentaire.sid AND news.hid='$hid' GROUP BY news.id ORDER BY news.date DESC LIMIT 0, 100") or die ("ERROR:" . mysql_error());
    		$num = mysql_num_rows($search);
            $nombre = $row['nombre'];
     
     
    if ($num == 0) {
     
    			echo "Il y a <b>$num</b> article(s) associées à la catégorie : </b>";
     
    			echo "Pas d'article!";
     
     
    		} else {
     
     
     
    			echo "Il y a <b>$num</b> news associées à la catégorie";
     
    			while ($row = mysql_fetch_array($search)) {
     
    echo "$row[0]";
     
    }
    Merci d'avance

  2. #2
    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
    Dans ta page de résultats tu fais bien un $hid = $_POST['hid'] quelque part ?


    Juste une remarque sinon pour la lisibilité du code il faut éviter de mettre $row[0] et préférer $row['nom_du_champ'].

  3. #3
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Dans ta page de résultats tu fais bien un $hid = $_POST['hid'] quelque part ?
    nan


    En fait, pour récupérer le $hid, je fais >> news.hid='$hid'

    Concernant >> $hid = $_POST['hid']; je l'insère n'importe où dans ma page parce que je viens de tester, et j'ai toujours 0 résultat

    Merci d'avance

  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
    Citation Envoyé par Angelik
    Concernant >> $hid = $_POST['hid']; je l'insère n'importe où dans ma page parce que je viens de tester, et j'ai toujours 0 résultat

    Merci d'avance

    Tu le mets au début du fichier, avant la première utilisation de $hid, pour l'initialiser...

  5. #5
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Je viens de tester en insérant le code en début de fichier mais j'ai toujours 0 résultat ... C'est bizarre, sachant que ça marchait hier

    ...

  6. #6
    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
    si tu testes ta requête dans phpmyadmin ça te renvoie des résultats ?

  7. #7
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Je viens de tester ma requête dans phpmyadmin :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT news.id,news.nom,news.titre,news.spec,news.photoarticle,news.visu,news.date,count( * ) AS nombre FROM news JOIN commentaire WHERE news.id = commentaire.sid AND news.hid=1 GROUP BY news.id ORDER BY news.date DESC LIMIT 0, 100

    où news.hid=1 et Mysql ne me retourne aucun enregistrement

  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
    Bon bah le problème ne vient pas du code alors, peut-être de la requête, tu es sûre qu'il y a des infos en bas répondant aux critères que tu souhaites ?

  9. #9
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Je n'ai peut être pas tout saisie (d'avance sorry ), mais je ne pense pas me tromper en te disant que je suis presque sûr des infos qui répondent aux critères de ma requête .. remarque pas tant que ça puisque je n'ai aucun enregistrement retourné ..

    Je ne sais pas si le contenu de ma table pourra nous éclairer mais je tente quand même :

    Code sql : 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    -- 
    -- Structure de la table `news`
    -- 
     
    CREATE TABLE `news` (
      `id` int(11) NOT NULL auto_increment,
      `hid` int(11) NOT NULL default '0',
      `sid` int(11) NOT NULL default '0',
      `nom` varchar(80) NOT NULL default '',
      `titre` varchar(80) NOT NULL default '',
      `spec` text NOT NULL,
      `photoarticle` text NOT NULL,
      `visu` varchar(4) NOT NULL default '',
      `date` datetime NOT NULL default '0000-00-00 00:00:00',
      PRIMARY KEY  (`id`),
      FULLTEXT KEY `nom` (`nom`,`spec`)
    ) TYPE=MyISAM AUTO_INCREMENT=4 ;
     
    -- 
    -- Contenu de la table `news`
    -- 
     
    INSERT INTO `news` (`id`, `hid`, `sid`, `nom`, `titre`, `spec`, `photoarticle`, `visu`, `date`) VALUES (1, 1, 0, 'Angelik', 'La création du monde', 'bla blaaaaaaaaaa', '', 'oui', '2007-02-09 14:36:10'),
     
    (2, 1, 0, 'Angelik', 'Stalingrad', 'bla bla bla ', '../photos/article-1-MBav1.jpg', '', '2007-02-09 15:53:14'),
    (3, 2, 0, 'Angelik', 'Une brève histoire de l''avenir', 'bla bla bla', '../photos/article-2-Logo fond noir.jpg', '', '2007-02-09 16:15:39');

    voili voilou

  10. #10
    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
    Un truc peut-être un peu bizarre, tu fais un GROUP BY news.id, mais cet id étant unique je pense pas que ça serve à quelque chose. Et tu fais une jointure avec la table commentaire sans utiliser de champs de cette table... Tu souhaites récupérer le nombre de commentaires associés à chaque news c'est ça ?

  11. #11
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Oui c'est bien ça

    >>cf post

  12. #12
    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
    Mais tu es sûre et certaine que ta requête fonctionnait bien auparavant

  13. #13
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Certaine oui (les résultats s'affichaient bien en fonction de la catégorie).

    Ca peut paraître affolant et je ne sais par quel miracle aujourd'hui celle-ci ne fonctionne plus...

    Tout ça est très déconcertant ...

  14. #14
    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
    Essaie de voir ce que ça donne dans phpmyadmin :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT count(commentaire.sid) FROM news, commentaire WHERE news.id = commentaire.sid AND news.hid=1 GROUP BY commentaire.sid

  15. #15
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Aucun enregistrement ...

  16. #16
    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
    Tu as bien des données dans tes DEUX tables ?

  17. #17
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Oui

    Voici ma table 'cat'

    Code sql : 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
    18
     
    -- 
    -- Structure de la table `cat`
    -- 
     
    CREATE TABLE `cat` (
      `id` int(11) NOT NULL auto_increment,
      `nom` varchar(80) NOT NULL default '',
      `visu` varchar(4) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;
     
    -- 
    -- Contenu de la table `cat`
    -- 
     
    INSERT INTO `cat` (`id`, `nom`, `visu`) VALUES (1, 'Littérature', 'oui'),
    (2, 'Histoire', '');

  18. #18
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    ta base est vide .... ça fait 2 fois que tu dis que dans phpmyAdmin tu n as aucun resultat de retourné

    Edit j'avais pas lu jusqu ' au bout , l 'enregistrement que tu essaie de faire ne peux pas marcher car en creant ta table tu lui demande de commencer l'id a 3 et toi tu veux inserer 1 ... donc si il prend ton enregistrement ça m etonnerait que l id reste 1 ... d ou aucun resultats pour l id 1
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  19. #19
    Membre éclairé Avatar de Angelik
    Profil pro
    Inscrit en
    Août 2006
    Messages
    253
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 253
    Par défaut
    Si j'ai bien compris, c'est au niveau de mon auto_increment = 3 ?

    Je remplace par quoi?

    J'ai regardé la structure de toute mes tables et l'auto_increment = (nbre d'enregistrement + 1) pour toute et pourtant les résultats s'affichent...si j'ai bien compris

  20. #20
    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
    Ah oui quand tu as un id auto-increment il faut rien lui donner dans la requête pour ce champ, tu mets '' et ça doit le faire (ou zapper carrément le champ dans la requête INSERT).

    Et tu as montré plusieurs tables mais pas commentaire elle a quelle tête ?

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

Discussions similaires

  1. [AJAX] Menu déroulant sans redirection
    Par clementdevelop dans le forum AJAX
    Réponses: 11
    Dernier message: 28/05/2013, 09h54
  2. Dimensions d'un Menu déroulant
    Par polo-j dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/02/2005, 14h26
  3. Menu déroulant valeur par défaut
    Par Gourouni dans le forum ASP
    Réponses: 11
    Dernier message: 06/12/2004, 16h31
  4. Menu déroulant suite au passage sur un TMenuItem
    Par James_ dans le forum C++Builder
    Réponses: 2
    Dernier message: 05/05/2004, 14h31

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