[php]pb recueration donnees bdd

Résolu
Bonjour,
voila je debute en php et j'ai un
pb par rapport a ma bdd qui a 4 champs :

id****pseudo****texte****photo

sur la page biblio.php
j'ai ce code
<a href="biblio.php?id=<?php echo "3"; ?>">machin</a>
<a href="biblio.php?id=4">truc</a>
<?php
//connexion bdd
mysql_connect("localhost", "root", "");//connexion a sql
mysql_select_db("scratchin");
//recuperation des donées de l'url
$nid= $_GET['id'];

//requete
$quete = mysql_query('SELECT * FROM `djs` WHERE id = "'.$nid.'"');
//classement de la requete
while ($donnees = mysql_fetch_array($quete));
{
$don = $donnees['pseudo'];
$txt = $donnees['texte'];
$photo = $donnees['img'];
$id=$donnees['id'];
?>

DJ <?php echo $donnees;?>
bio<?php echo $txt;
echo $photo;?>

<?php
}
mysql_close();
?>
donc je cherche a ce que le script php recupere l'id dans l'url et fasse la requete en fonction de l'id recupéré
je ne sais pas si mon erreur est

au niveau des boutons<a>
au niveau de $_GET[]
au niveau du fetch_array

je commence vraiment a galerer sr ce truc je pensais que ce serait tout simple peut etre c'est toute la méthode qui n'est pas valide
merci a ceux qui m'éclaireront
Configuration: Mac OS X
Firefox 3.0.3

8 réponses

  1. mysql_query(" SELECT * FROM `djs` WHERE id='%$nid%' ");

    Ca dit quoi ?
    1. non ca change rien.

      mai a la base mon desir (peut etre c'est farfelu)
      c'etait d'appeler la table, de la foutre ds un fetch_array et de montrer tous les noms de la colonne pseudo sur la page et que on cliquat dessus ca renvoyait les autres colonnes de la meme ligne , la bio les photos etc. Automatisé quoi
      Suis-je bien clair(j'en doute)
      1. Oui je vois ce que tu veux faire, c'est tout à fait possible.

        $quete = mysql_query(" SELECT * FROM djs WHERE clef='$nid' ");

        Ca devrait marcher ca.
        1. toujours pas....
          j'ai éssayé avec :
          $quete = mysql_query('SELECT * FROM djs WHERE id ="'.mysql_real_escape_string($nid).'"');

          meme résultat mais est le probleme n'est pas dans le lien :
          <a href="biblio.php?id=<?php echo "3"; ?>">machin</a>
          ou bien
          <a href="biblio.php?id=4">truc</a>
          et aussi les liens sont sur biblio.php et renvoient a un autre appel mais toujours sur biblio.php n'est ce pas un soucis également???
          1. Essayes de t'exprimer un peu mieux, ce n'est pas compréhensible parfois ; donc pas pratique pour t'aider ...

            Disons la page biblio comme je la vois : (fais ceci et donne les résultats)

            <a href="biblio.php?id=<?php echo '3'; ?>">machin</a>
            <a href="biblio.php?id=4">truc</a>

            <?php
            //Le reste s'execute si il y'a un id present dans le lien

            if ( !empty($_GET['id']) ) {

            //Juste pour voir le $nid
            echo $nid= $_GET['id'];

            //connexion bdd

            mysql_connect("localhost", "root", "");//connexion a sql
            mysql_select_db("scratchin");

            //requete
            $quete = mysql_query(" SELECT * FROM dj WHERE id = '$nid' ");

            //classement de la requete
            while ($donnees = mysql_fetch_array($quete));
            {
            $don = $donnees['pseudo'];
            $txt = $donnees['texte'];
            $photo = $donnees['img'];
            $id=$donnees['id'];
            ?>

            DJ <?php echo $donnees;?>
            bio <?php
            echo $txt;
            echo $photo;
            echo '<br>';

            }
            mysql_close();
            }
            ?>
            1. donc,
              ca recupere bien l'id dans l'url echo $nid fonctionne donc maintenant c'est peut etre un probleme de quotes dans mysql_query???
              1. while ($donnees = mysql_fetch_array($quete));
                {
                ...

                Vires le " ; " dans la première ligne.

                Apres ca doit fonctionner ;) Si ca ne fonctionne pas, c'est que les parametre de connexions à la base sql ne sont pas les bons ;)

                Sur ce je te laisse, je pars au boulot :(

                Penses à mettre "résolu" pour le topic ;)

                Nb : pour une recherche unique , comme la tienne ; pas besoin de la boucle while (condition) {execution} qui en gros réalise : "tant que (condition) { alors }
                Pour cela :

                $quete = blabla;
                $donnees = mysql_fetch_array($quete);
                $don = ....

                mysql_close();