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 :

Creer des liens pour chaque entrée d'une table


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de dlecteur
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 95
    Points
    95
    Par défaut Creer des liens pour chaque entrée d'une table
    Bonjour a tous,

    Je fais une requête sur une BD Mysql et je voudrais créer un lien "clickable"pour chaque enregistrement retourné.

    voila mon code :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     <html>
    <body>
    <?php
    $username="username";
    $password="password";
    $database="your_database";
     
    mysql_connect(localhost,$username,$password);
    @mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM tablename";
    $result=mysql_query($query);
     
    $num=mysql_numrows($result);
     
    mysql_close();
    ?>
    <table border="0" cellspacing="2" cellpadding="2">
    <tr>
    <th><font face="Arial, Helvetica, sans-serif">Value1</font></th>
    <th><font face="Arial, Helvetica, sans-serif">Value2</font></th>
    <th><font face="Arial, Helvetica, sans-serif">Value3</font></th>
    <th><font face="Arial, Helvetica, sans-serif">Value4</font></th>
    <th><font face="Arial, Helvetica, sans-serif">Value5</font></th>
    </tr>
     
    <?php
    $i=0;
    while ($i < $num) {
     
    $f1=mysql_result($result,$i,"field1");
    $f2=mysql_result($result,$i,"field2");
    $f3=mysql_result($result,$i,"field3");
    $f4=mysql_result($result,$i,"field4");
    $f5=mysql_result($result,$i,"field5");
    ?>
     
    <tr>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f1; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f2; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f3; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f4; ?></font></td>
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $f5; ?></font></td>
    </tr>
     
    <?php
    $i++;
    }
    ?>
    </body>
    </html>
    Je voudrais donc, que si je click sur le field 1 de chaque enregistrement celui ci m'envoi vers une page field1.php par exemple.

    Merci.
    The journey of a 1000 miles always begins with
    the first step...

  2. #2
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut
    salut,

    dans ton echo tu dois mettre l'id que tu recuperes comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <a class="reply" href="reply.php?id=<?php echo $data->id;?>"><img src="images/reply.png" /></a>
    ici j'ai mis une image car il me semble que dans un tableau le lien ne fonctionne pas sur une ligne pour ça il faut utiliser du js mais en metant ce bout de code dans ta boucle et dans une case de ton tableau tu recuperes l'id de tes fields et le cache sous une image (pour l'image findicons ou iconfinder seront parfait).

    ensuite tu cliques sur cette image qui t'enmene vers la page reply.php qui contiendra l'id en $_GET qui sera récupérée pour générer ta page avec le bout de code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if(!empty($_GET))
    {
      extract($_GET);
      $id = strip_tags($id);
     
      $req = $bdd->prepare('SELECT *FROM tablename WHERE id=:id');
      $req->execute(array('id'=>$id));
      if($req->rowCount()==0)
      {
        header('Location: index.php');
      }
      $req->closeCursor();
    Bon là c'est qu'un bout de code c'est juste pour te mettre sur la piste, en gros ça donne ça

  3. #3
    Membre régulier Avatar de dlecteur
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Points : 95
    Points
    95
    Par défaut
    Merci "noob" pour la réponse (drole de nickname ). je pensais qu'il y avait une solution plus simple avec moins de code. Je vais essayer et te tiens au courant.

    $req = $bdd->prepare('SELECT *FROM tablename WHERE id=:id');
    Pourquoi je dois faire ce select alors que j'en ai déja fais ici:

    $query="SELECT * FROM tablename";
    $result=mysql_query($query);
    Cdt.
    The journey of a 1000 miles always begins with
    the first step...

  4. #4
    Membre régulier Avatar de nico le noob
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 132
    Points : 101
    Points
    101
    Par défaut
    Pourquoi je dois faire ce select alors que j'en ai déjà fais ici:
    ta requête est très bien dans l'état c'est juste que j'utilise une autre façon de faire c'est tout.

    Je voudrais donc, que si je click sur le field 1 de chaque enregistrement celui ci m'envoi vers une page field1.php par exemple.
    field1 est la même page que field2 field3 etc... dans mon exemple ça te permet d'avoir 150 field avec une page, elle sera générée en fonction de ton field et don son id.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
     
          $req = $bdd->prepare('SELECT * FROM commentaires WHERE id=:id');
          $req->execute(array('id'=>$id));
          $data = $req->fetch(PDO::FETCH_OBJ);
          if($req->rowCount()>0):?>
          <div class="com">
            <h3><?php echo ucwords($data->pseudo);?></h3>
            <p><?php echo $data->commentaire;?></p>
            <p class="date"><?php echo date('d/m/Y H:i',strtotime($data->date));?></p>
          </div>
          $req->closeCursor();
     
          ?>
    dans l'exemple ci dessus je récupère l'id et je génère la page avec les champ qui correspondent.

    Cdt

    Edit: tes pages existent dejà ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2015, 14h44
  2. Comment créer des variables pour chaque ligne d'une table
    Par Slyvore dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 24/04/2012, 14h24
  3. Réponses: 0
    Dernier message: 28/09/2010, 23h23
  4. Lien à attribuer pour chaque entrée d'une table
    Par Legendsnake dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2009, 18h55
  5. [Sessions] Comment creer des sessions pour chaque visiteur
    Par developower dans le forum Langage
    Réponses: 2
    Dernier message: 06/10/2005, 12h55

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