[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. 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();
    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. 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. 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. 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. 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. mysql_query(" SELECT * FROM `djs` WHERE id='%$nid%' ");

                Ca dit quoi ?