Page 1 sur 1

Afficher plusieurs tables dans un tableau.

Posté : 15 mars 2009, 12:52
par JypX
J'utilise ce code pour afficher une table dans un tableau :

Code : Tout sélectionner

$query = "SELECT nom, ref FROM test01 ORDER BY nom"; $result = mysql_query($query); while($row = mysql_fetch_row($result)){ $Nom = $row[0]; $Ref = $row[1]; echo "<tr>\n <td>$Nom</td>\n <td>$Ref</td>\n </tr>\n";
Mais j'ai besoin de récupérer d'autres données qui sont dans d'autres tables, en sachant que j'ai bien une donnée commune (ref) entre ma table principale et les secondaires.

Posté : 15 mars 2009, 13:27
par sylvaing26
Fais une selection multi table du genre (le * est a proscrire pour soulager le serveur)
SELECT `table1`.*, `table2`.*
FROM table1, table2
WHERE ((`table1`.* ref) AND (`table2`.* ref))

Posté : 15 mars 2009, 21:48
par JypX
J'ai ce message d'erreur :
Parse error: syntax error, unexpected '>' in /var/www/projet/affiche-tableau-2-tables.php on line 50

La ligne 50 est : echo "<tr>\n

Code : Tout sélectionner

$query = "SELECT `test01`.url, `test02`.toto FROM test01, test02 WHERE ((`test01`.url nom) AND (`test02`.toto nom)); $result = mysql_query($query); while($row = mysql_fetch_row($result)){ $Nom = $row[0]; $Url = $row[1]; echo "<tr>\n <td>$Nom</td>\n <td>$Url</td>\n </tr>\n"; }
J'ai 2 tables (test01 et test02) composé de 2 champs (test01 -> nom et url / test02 -> nom et toto) et 4 "entrées":
test01
nom -> jp / nelly / zzzz / yyyyy
url -> www.jp.fr / www.nelly.fr / www.zzzz.com / www.aaaa.org

test02
nom -> jp / nelly / zzzz / yyyyy
toto -> jp-toto / nelly-toto / zzzz-toto / yyyyy-toto

Posté : 15 mars 2009, 22:46
par dunbar
"SELECT t1.nom, t1.url, t2.nom as nomtable2, t2.url as urlt2
            FROM table1 t1, table2 t2
            WHERE t1.nom = 'toto'";

Posté : 16 mars 2009, 12:19
par JypX
Ca n'a rien fait de bon :(

J'ai tenté avec ca :
$query = "SELECT test01.url, test02.toto  FROM test01, test02 WHERE test01.nom=test02.nom;
            
$result = mysql_query($query);

while($row = mysql_fetch_row($result)){
$url = $row[0];

$toto = $row[1];

echo "<tr>\n
<td>$url</td>\n
<td>$totol</td>\n
</tr>\n";

}
avec toujours la même erreur....

Posté : 16 mars 2009, 12:31
par charabia
La couleur devrait t'indiquer l'erreur. Tu ouvre un guillemet sans la refermer dès la première ligne de code.

Posté : 16 mars 2009, 13:07
par JypX
La couleur devrait t'indiquer l'erreur. Tu ouvre un guillemet sans la refermer dès la première ligne de code.
merci et ca marche!!

Edit :

J'ai un nouveau problème comme faire quand une 3ème tables intervient?
J'ai fait ca à tout hasard mais ca ne marche pas :(
$query = "SELECT jos_ol_base.product_sku, jos_ol_base.ref_fou01, jos_ol_base.ref_fou02, jos_ol_base.prix_a, jos_vm_product.product_name, jos_vm_product.product_publish, jos_vm_product.product_weight, jos_ol_founisseur01.prix_r FROM jos_ol_base, jos_vm_product, jos_ol_founisseur01 WHERE jos_ol_base.product_sku=jos_vm_product.product_sku, jos_ol_base.ref_fou01=jos_ol_founisseur01.ref_fou"; 
J'ai aussi tenté AND à la place de la virgule entre jos_ol_base.product_sku=jos_vm_product.product_sk et jos_ol_base.ref_fou01=jos_ol_founisseur01.ref_fou

Edit 2 :
Ca marche avec le AND mais pas comme je veux
Car avec le AND, j'ai que les résultats qui remplissent les 2 conditions normal puisque c'est fait pour ca alors que moi je qu'il me complète mon tableau avec les valeurs de la 3ème table sinon il affiche une casse vide.