stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
8 janv. 2006 à 12:15
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
8 janv. 2006 à 14:25
Bonjour,
J'aimerais afficher dans un tableau des données de deux tables pour cela j'ai utilisé des jointures en sql. Mais je sais pas comment on place les deux tables dans une boucle While afin d'afficher l'ensemble des enregistrements contenu dans cette table, pour plus de détai lje vous donne mon code source ci-dessous :
<?php require_once('Connections/ecommerce.php'); ?>
<title>Articles</title>
<style type="text/css">
<!--
.Style1 {font-family: Arial, Helvetica, sans-serif}
body,td,th {
color: #FFFFFF;
font-family: Arial, Helvetica, sans-serif;
}
body {
background-color: #333333;
background-image: url(images/fondsite.gif);
}
a:link {
color: #FFFFFF;
text-decoration: none;
}
a:visited {
color: #FFFFFF;
text-decoration: none;
}
a:hover {
color: #FF0000;
text-decoration: none;
}
a:active {
text-decoration: none;
}
.Style4 {font-size: small}
.Style5 {
color: #FF0000;
font-size: small;
}
-->
</style>
Retour,
Attention !!! Atconcept se réserve le droit de modifier ses prix sans préavis.
N°,
Fabricant,
Nom d'article ,
Prix HTVA en € ,
Prix TVAC en € ,
----
<?php
mysql_select_db($database_ecommerce, $ecommerce);
$colname_articles = \"1\";
if (isset($_GET['id'])) {
$colname_articles = (get_magic_quotes_gpc()) ? $_GET['id'] : addslashes($_GET['id']);
}
$query_articles sprintf(\"SELECT * FROM shop_articles WHERE id %s ORDER BY id ASC\", $colname_articles);
$articles = mysql_query($query_articles, $ecommerce) or die(mysql_error());
$row_articles = mysql_fetch_assoc($articles);
$totalRows_articles = mysql_num_rows($articles);
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 8 janv. 2006 à 12:46
Salut,
$query_articles sprintf("SELECT * FROM shop_articles WHERE id %s ORDER BY id ASC", $colname_articles);
mais pourquoi utiliser sprintf plutot que :
$query_articles 'SELECT * FROM shop_articles WHERE id '.$colname_articles.' ORDER BY id ASC';
Bon, selon moi, la jointure est à faire dans la requette et pas
en php, les gains de performances seront meilleurs...Renseigne toi sur
LEFT JOIN et RIGHT JOIN, et même les FROM à deux tables (jointures
externes, et jointures internes)
là, je n'ai pas bien compris ce que tu voulais faire désolé...
In a dream, I saw me, drop dead... U was there, U cried... It was just a dream, if I die, U won't cry, maybe, U'll be happy
Mon site (articles sur la programmation et programmes)
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 8 janv. 2006 à 13:00
"$query_fabricant = sprintf("SELECT
shop_articles.id, shop_fabricant.id, shop_fabricant.nom,
shop_fabricant.url FROM shop_articles inner join shop_fabricant on
shop_fabricant.id= shop_articles.fabricant WHERE shop_articles.id= %s",
$idURL_fabricant);"
$query = "SELECT shop_articles.id as article_id, shop_fabricant.id as
fabricant_id, shop_fabricant.nom, shop_fabricant.url FROM
shop_articles, shop_fabricant WHERE shop_fabricant.id shop_articles.fabricant AND shop_articles $idURL_fabricant";
$q = mysql_query($query);
while ( $data = mysql_fetch_array($q) ) {
echo $data['article_id'];
echo $data['fabricant_id'];
echo $data['nom'];
echo $data['url'];
}
C'est tout simple. Attention cependant, quand tu récupères 2 champs avec le même nom, il faut rennomer tes champs avec AS !
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 8 janv. 2006 à 13:08
Salut coucou747,
Ma jointure ce fait pas en PHP mais bien en SQL, dont voici le code :
SELECT shop_articles.id, shop_fabricant.id, shop_fabricant.nom, shop_fabricant.url FROM shop_articles inner join shop_fabricant on shop_fabricant.id= shop_articles.fabricant WHERE shop_articles.id= %s", $idURL_fabricant);
Mon bute est de pouvoir afficher des données de la table articles, les champs id, nom_article, prix_ht, prix_ttc et le champ nom de la table fabricant.
Quand l'internaute clique sur le nom fabricant il arrive directement sur la bonne page c'est pour celà que j'ai join les deux tables.
Alors ma jointure fonctionne car à l'écran tout s'affiche correctement, sauf que j'ai que le premier enregistrement qui s'affiche. C'est pour cela que je veux uitlisé une boucle while pour faire en sorte que tout mes enregistrements s'affiche.
Voilà si sa peu t'aider avoir plus clair, sur mon problème.
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 8 janv. 2006 à 13:49
Salut FhX,
J'ai modifié ma requête sql comme dans ton message, j'ai un petit bug, mais je continue à chercher, mais la difficulté consiste à prendre des données de deux tables.
Pourrais-tu me donner ton avis en lisant le message du dessus.Car dans ta solution j'affiche que les données de fabricant. Or je doit pouvoir lire les articles et d'un lien sur la colonne fabricant afficher sur une page les données du fabricant.
Voilà j'espère que tu y vois plus clair.
En tout cas merci pour votre aide les gas c'est sympa, je vois déjà plus clair.
Si tu savais me donnée ton avis se serait très sympa.
@+
stu76
Vous n’avez pas trouvé la réponse que vous recherchez ?
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 8 janv. 2006 à 14:24
Salut en travaillant sur la solution de FhX, j'ai cette erreur qui s'affiche et je ne vois pas pourquoi j'ai relooké à plusieurs reprise mon code et nada, je comprend pas
Unknown column 'shop_articles' in 'where clause'
N°,
Fabricant,
Nom d'article ,
Prix HTVA en ? ,
Prix TVAC en ?
je remet le code source modifier ci dessous si quelqu'un pouvait me guider !!!!
$query='SELECT shop_articles.id as article_id, shop_fabricant.id as fabricant_id, shop_fabricant.nom, shop_fabricant.url FROM shop_articles, shop_fabricant WHERE shop_fabricant.id=shop_articles.fabricant and shop_articles=$idURL_fabricant';
$q = mysql_query($query) or die(mysql_error());
$data = mysql_fetch_assoc($q);
$totaldata = mysql_num_rows($q);
//$sql='SELECT shop_articles.id, shop_articles.nom_article, shop_articles.prix_ht, shop_articles.prix_ttc, shop_articles.fabricant
//FROM shop_articles';
//$req=mysql_query($sql) or die('Erreur SQL!
'.$sql.'
'.mysql_error());
while ($data=mysql_fetch_array($q))
{
?>
----