Pb requête sql

Pb requête sql - SQL/NoSQL - Programmation

Marsh Posté le 19-07-2006 à 16:44:24    

Bonjour
 
Voila mon pb
j'ai 2 table, une table client et une table produit
 
à un produit est lié un client (id_clt), donc il y a une clé etrangére (pdt_id_clt) dans la table produit.
 
j'ai créer un tableau ou j affiche tout le descriptif (les données contenu dans la table) du produit. et j ai mi un lien hors tu tableau qui permet au user de voir à qui est lié ce produit donc voici on code pour le lien:

Code :
  1. <td><a href="cltprod.php?id_produit='.$row["id_produit"].'"  <font color="#25AD3D">Clt</a>


effectivement ce lien est dans une balise echo.
 
je renvoie ce lien vers une page que j ai appellé cltprod.php.
dans cette page je veux récuper le pdt_id_clt qui est la clé etrangére dans la table produit afin d affiché les donné qui se trouve dans la table client vu que le id_clt = pdt_id_clt.
 
je trouve pas la requête.
 

Code :
  1. <?php
  2. require($_SERVER['DOCUMENT_ROOT']."/actimac/db.php" );
  3. $id =$_GET['id_produit'];
  4. $requete="select * from $table_client where id_produit=$id and pdt_id_clt=id_client";
  5. $row = mysql_query($requete);
  6. echo ' <tr>
  7.             <td bgcolor="#33FF00"><a href="index.php"  <font color="#25AD3D">Acceuil</a>></font></td>
  8.           </tr><pre>';
  9. // si on a récupéré un résultat on l'affiche.
  10.     // debut du tableau
  11.     echo '<table bgcolor="#CCCCCC">'."\n";
  12.         // première ligne on affiche les titres prénom et surnom dans 2 colonnes
  13.          echo '<tr>';
  14.          echo '<td bgcolor="#669999"><b><u>Nom</u></b></td>';
  15.          echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
  16.   echo '<td bgcolor="#669999"><b><u>Societe</u></b></td>';
  17.          echo '<td bgcolor="#669999"><b><u>Adresse</u></b></td>';
  18.          echo '<td bgcolor="#669999"><b><u>Code Postal</u></b></td>';
  19.          echo '<td bgcolor="#669999"><b><u>Ville</u></b></td>' ;
  20.          echo '<td bgcolor="#669999"><b><u>Tel</u></b></td>';
  21.      echo '<td bgcolor="#669999"><b><u>Fax</u></b></td>';
  22.      echo '<td bgcolor="#669999"><b><u>Email</u></b></td>';
  23.   echo '<td bgcolor="#CCCCCC">&nbsp;</td>';
  24.  echo '</tr>'."\n";
  25. // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.     
  26.     echo '<tr>';
  27.         echo '<td bgcolor="#33CCCC">'.$row["nom"].'</td>';
  28.         echo '<td bgcolor="#33CCCC">'.$row["prenom"].'</td>';
  29.  echo '<td bgcolor="#33CCCC">'.$row["societe"].'</td>';
  30.         echo '<td bgcolor="#33CCCC">'.$row["adresse"].'</td>';
  31.         echo '<td bgcolor="#33CCCC">'.$row["cp"].'</td>';
  32.         echo '<td bgcolor="#33CCCC">'.$row["ville"].'</td>';
  33.     echo '<td bgcolor="#33CCCC">'.$row["tel"].'</td>';
  34.     echo '<td bgcolor="#33CCCC">'.$row["fax"].'</td>';
  35.     echo '<td bgcolor="#33CCCC">'.$row["email"].'</td>';
  36.         echo '</tr>'."\n";
  37.  
  38.     echo '</table>'."\n";
  39.     // fin du tableau.
  40. ?>


 
 
Merci

Reply

Marsh Posté le 19-07-2006 à 16:44:24   

Reply

Marsh Posté le 20-07-2006 à 15:53:44    

modibonj a écrit :

Code :
  1. <?php
  2. $requete="select * from $table_client where id_produit=$id and pdt_id_clt=id_client";
  3. $row = mysql_query($requete);
  4. ?>




C'est pas un pb SQL, c'est un pb php. Ta variable "$row" ne contient pas le résultat de ta requête mais un identifiant sur cette requête (un peu comme "fopen()" en C te renvoie un pointeur sur le fichier et non le contenu du fichier lui-même).
Pour récupérer et afficher les valeurs, il te faut faire ceci:

$result=mysql_query($requete);
if (mysql_num_rows($result) > 0)
{
    while ($row=mysql_fetch_assoc($result))
    {
          echo $row["nom"];
          echo $row["prenom"];
          <...>
     }
}
else
{
     echo "Pas de résultat";
}
mysql_free_result($result);


Message édité par Sve@r le 20-07-2006 à 15:55:02
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed