selection avec jointure

Répondre
zebden
le 02/05/2005 à 15:27
zebden
bon bah allez à la barbare tant pis :

<?php
$sql1 = 'SELECT * FROM `cat_tbl` ';
$req1 = mysql_query($sql1) or die ("erreur req ".mysql_error());

while($tableau = mysql_fetch_array($req1)) {

$sql2 = 'SELECT * FROM `sscat_tbl` WHERE `catid` = ' . $tableau['catid'];
$req2 = mysql_query($sql2) or die ("erreur req ".mysql_error());

echo 'Categorie : ' . $tableau['Cat'] . '';

while($tableau2 = mysql_fetch_array($req2)) {
echo '<a href="Sous_Cat_Site.php?id='.$tableau2['id'].'">'.$tableau2['Sous_Cat'].'</a>&nbsp;|&nbsp;';
}
}
?>


à arranger pour tes besoins.
zebdinou pour les intimes / Blog : http://www.zebden.fr
mouna
le 02/05/2005 à 16:14
mouna
zebden: un message pour toi et pour tout le monde:
je suis purement debutante et je voulais seulement savoir le principe de chaque code, ce ke t as fait est pas correct a 100% mais c etait le principe, bref ca m a donnee l idee de comment faire, merci a toi et a tout le monde:

<?
// settings
include ("config.php");

if(isset($_POST["Sous_Cat"])) $Sous_Cat = $_POST["Sous_Cat"];
else $Sous_Cat = "";
if(isset($_POST["Cat"])) $Cat = $_POST["Cat"];
else $Cat = "";
if(isset($_POST["catid"])) $catid = $_POST["catid"];
else $catid = "";
if(isset($_POST["Sous_Cat_id"])) $Sous_Cat_id = $_POST["Sous_Cat_id"];
else $Sous_Cat_id = "";

$connection = mysql_connect("$host", "$user", "$pass") or die(mysql_error());
$db = mysql_select_db($db_name, $connection) or die(mysql_error());
$sql = mysql_query ("select * from $table_name_gbook order by catid ASC") or die ("erreur req ".mysql_error());
//le <select> et </select> doit être créé hors de la boucle while, sinon tu en crées un par option.
?>
<table border="1" width="75%" align="center"><tr> <? //debut de notre tableau avec une nouvelle ligne ?>
<?php
$i = 0;
while( $sortie1 = mysql_fetch_array($sql))
{
$Cat = $sortie1['Cat'];
if ( ($i%3 )==0 && $i!=0){
//% est le reste d une division (5/2 %= 1 2*2-5)et le i doit etre differente de 0 $i!=0
//http://www.lephpfacile.com/forums/read_msg.php?f=1&id=3646
//http://www.tizag.com/phpT/operators.php
//http://www.w3schools.com/php/php_operators.asp
?>
</tr><tr> <? //fin de la premiere ligne et ajout d une nouvelle ligne ?>
<?php
}
echo "<td width=\"25%\"><a href=\"Sous_Cat.php?id=".$sortie1['catid']."\">".$Cat."<br/></a>"; //display des sous_cat avec lien de leurs id ds les cellules

//$sql1 = mysql_query ("SELECT * FROM cat_tbl AS c JOIN sous_cat_tbl AS sc ON c.catid = sc.catid ORDER BY sc.id") or die ("erreur req ".mysql_error()); // ASC est la valeur par défaut donc inutile
//$sql1 = mysql_query ("select * from $table_name1 WHERE catid ='1' order by id ASC") or die ("erreur req ".mysql_error()); //un limit de 4 sous_cat
$sql1 = mysql_query("SELECT * FROM sous_cat_tbl WHERE catid = ".$sortie1['catid']. " order by id DESC") or die ("erreur req ".mysql_error());
//http://sqlcourse2.com/joins.html
//http://www.phpfrance.com/forums/voir_sujet-2418-texte-jointure.php
//http://www.commentcamarche.net/sql/sqljoint.php3


while( $sortie2 = mysql_fetch_array($sql1))
{
$Sous_Cat = $sortie2['Sous_Cat'];
echo "<a href=\"Sous_Cat_Site.php?id=".$sortie2['id']."\">".$Sous_Cat."</a>&nbsp;|&nbsp;"; //display les liens des sous_cat avec un espace avec separateur
//echo "<td width=\"25%\"><a href=\"index.php&id=".$sortie['id']."\">".$Cat."<br/></a>";
}//fin de boucle
if (($Sous_Cat)>4); //si le nbre de sous_cat est > 4 on fait retour a la ligne et ecir More
echo "<br/><a href=\"Sous_Cat.php?id=".$sortie1['catid']."\">More</a>"; //display des sous_cate avec lien de leurs id ds les cellules

echo "</td>"; // on ferme notre cellule
$i++;
}//fin de boucle
?>
</table>
<?
//after verifying everything, must be inserted then redirected :)
mysql_close ();
?>
mojorisin
le 02/05/2005 à 23:07
mojorisin
Euh zebden je sais pas ou tu as vu que le left join allait retourner qu'un enregistrement toi :o)
On m'aurait menti a l'insu de mon plein gré sur les jointures alors? smiley
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours