Condition While

Fermé
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 - 24 sept. 2013 à 11:09
 Froder - 24 sept. 2013 à 15:46
Bonjour,

Est-il possible de décomposer le While en deux étapes ?

Ce code me pulvérise le cerveau tellement il me complique :
<table width="970" border="0" align="center" cellpadding="0" cellspacing="0"><tr>
<td align="center" class="CadreBlanc">
<div id="contentFlow" class="ContentFlow"><div class="loadIndicator"><div class="indicator"></div></div><div class="flow">
<?php while($data = mysql_fetch_assoc($req)){ ?>
<div class="item">
<img class="content" src="<?php echo URL_IMAGES; ?>produits/<?php echo $data['Image']; ?>.png" />
<div class="caption"><?php echo utf8_encode($data['Designation']); ?></div>
</div>
<?php } ?>
</div><div class="globalCaption"></div><div class="scrollbar"><div class="slider"><div class="position"></div></div></div>
</div><div class="mouseoverCheckElement"></div></div></div></div>
</td></tr></table>

<div class="Espace20"></div>

<table width="970" border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td class="CadreGris">

<table width="947" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="4" align="left" class="Cyan18Gras">
<?php echo utf8_encode($data['Designation']); ?>
</td>
</tr>
<tr align="left">
<td colspan="4"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Description :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Description']); ?></td>
<td width="15"> </td>
<td width="280" rowspan="7" align="right" valign="top"><table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="<?php echo URL_IMAGES; ?>logos/<?php echo $data['Image']; ?>.png" width="280" height="92" /></td>
</tr>
<tr>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center" class="TexteCyan"><strong><?php echo utf8_encode($data['Contenance']); ?></strong></td>
</tr>
<tr>
<td align="center"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center"> </td>
</tr>
</table></td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Principe actif :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Principe_actif']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Mode d'emploi :</td>
<td width="522" align="left" valign="top"><?php echo utf8_encode($data['Mode_emploi']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td width="130" align="left" valign="top" class="Cyan14Gras">Type :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Type_Mode']); ?></td>
<td width="15"> </td>
</tr>
</table>
</td>
</tr>
</table>

Mon premier While regroupe le <div class="item">...</div>
Je suis obligé d'ouvrir un second while pour compléter les informations à afficher mais je n'y arrive pas.

si j'agrandis le {} il répètera autant de fois le <div class="item">...</div> or la seconde partie des éléments sont dans un second tableau...

Pouvez-vous m'aider svp ?

7 réponses

tu dois relancer ta requete pour faire fonctionner le deuxième while, de plus il ne sont pas imbriqués, juste à la suite l'un de l'autre.

$requete= "select ...";
while ($data = ... ){

}

$requete = "select ... ";
while ($data = ... ) {

}

ça devrait fonctionner pour ton site.

Ou tu peux ne faire qu'une requête mais tu dois stocker le résultat dans un array (un tableau). De cette manière tu peux réutiliser le résultat quand tu veux avec un foreach par exemple (à adapter) ...

$bdd = array();
while ($donnees = mysql_fetch_array($result)){
$bdd[] = $donnees;
}


echo "<pre>";
print_r($bdd);
echo "</pre>";

foreach ($bdd as $cle=>$valeur){
echo "<div>$valeur['bidule1']</div>";
}

foreach ($bdd as $cle=>$valeur){
echo "<div>$valeur['bidule2']</div>";

}
1
J'ai souligné et mis en gras ce qui cloche !
prends du recul relis ton code ...

$sql = 'SELECT * FROM '.$tb_produits.' WHERE Marque = "SIVODERM" ORDER BY Code';
while($data = mysql_fetch_assoc($req)){ ?>
1
il est possible d'imbriquer un deuxième while pour compléter les infos ... je ne vois pas le problème ici ?
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
24 sept. 2013 à 12:32
C'est d'imbrique le second while :p

quand je fais un echo il m'affiche pas l'article.

voici toute ma page :
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link type="text/css" href="../../styles/styles.css" rel="stylesheet" />
<link type="text/css" href="../../styles/normal.css" rel="stylesheet" />
<SCRIPT LANGUAGE="JavaScript">
function ChangeMessage(message,champ){if(document.getElementById)document.getElementById(champ).innerHTML = message;}
</SCRIPT>
<?php include("../../config.php"); include("../../includes/header.php"); ?>
<?php $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS); mysql_select_db(MYSQL_BASE,$db);
$sql = 'SELECT * FROM '.$tb_produits.' WHERE Marque = "SIVODERM" ORDER BY Code';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($data = mysql_fetch_assoc($req)){ ?>
<!-- ######################################################################################################### -->
<table width="970" border="0" align="center" cellpadding="0" cellspacing="0"><tr>
<td align="center" class="CadreBlanc">
<!-- ######################################################################################################### -->
<div id="contentFlow" class="ContentFlow"><div class="loadIndicator"><div class="indicator"></div></div><div class="flow">
<!-- ######################################################################################################### -->

<div class="item">
<img class="content" src="<?php echo URL_IMAGES; ?>produits/<?php echo $data['Image']; ?>.png" />
<div class="caption"><?php echo utf8_encode($data['Designation']); ?></div>
</div>

<!-- ######################################################################################################### -->
</div><div class="globalCaption"></div><div class="scrollbar"><div class="slider"><div class="position"></div></div></div>
</div><div class="mouseoverCheckElement"></div></div></div></div>
<!-- ######################################################################################################### -->
</td></tr></table>
<!-- ######################################################################################################### -->

<div class="Espace20"></div>

<table width="970" border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td class="CadreGris">

<table width="947" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="4" align="left" class="Cyan18Gras">
<?php echo utf8_encode($data['Designation']); ?>
</td>
</tr>
<tr align="left">
<td colspan="4"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Description :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Description']); ?></td>
<td width="15"> </td>
<td width="280" rowspan="7" align="right" valign="top"><table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="<?php echo URL_IMAGES; ?>logos/<?php echo $data['Image']; ?>.png" width="280" height="92" /></td>
</tr>
<tr>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center" class="TexteCyan"><strong><?php echo utf8_encode($data['Contenance']); ?></strong></td>
</tr>
<tr>
<td align="center"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center"> </td>
</tr>
</table></td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Principe actif :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Principe_actif']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Mode d'emploi :</td>
<td width="522" align="left" valign="top"><?php echo utf8_encode($data['Mode_emploi']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td width="130" align="left" valign="top" class="Cyan14Gras">Type :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Type_Mode']); ?></td>
<td width="15"> </td>
</tr>
</table>
</td>
</tr>
</table>

<!-- ######################################################################################################### -->
<?php }; mysql_close(); include("../../includes/footer.php"); ?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je veux bien que tu mettes tout le code mais il serait préférable pour t'aider, que tu mettes le code avec les deux while pour qu'on puisse regarder ce qui cloche, non ?
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
24 sept. 2013 à 12:58
tu as raison désolé !
Mon premier while se trouve ici :
<div id="contentFlow" class="ContentFlow"><div class="loadIndicator"><div class="indicator"></div></div><div class="flow">
<?php while($data = mysql_fetch_assoc($req)){ ?>
<div class="item">
<img class="content" src="<?php echo URL_IMAGES; ?>produits/<?php echo $data['Image']; ?>.png" />
<div class="caption"><?php echo utf8_encode($data['Designation']); ?></div>
</div>
<?php } ?>
</div><div class="globalCaption"></div><div class="scrollbar"><div class="slider"><div class="position"></div></div></div>
</div><div class="mouseoverCheckElement"></div></div></div></div>

Mon second while est comme ca :
<?php while($data = mysql_fetch_assoc($req)){ ?>
<table width="970" border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td class="CadreGris">

<table width="947" border="0" cellspacing="0" cellpadding="0">
<tr>
<td colspan="4" align="left" class="Cyan18Gras">
<?php echo utf8_encode($data['Designation']); ?>
</td>
</tr>
<tr align="left">
<td colspan="4"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Description :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Description']); ?></td>
<td width="15"> </td>
<td width="280" rowspan="7" align="right" valign="top"><table width="280" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="<?php echo URL_IMAGES; ?>logos/<?php echo $data['Image']; ?>.png" width="280" height="92" /></td>
</tr>
<tr>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center" class="TexteCyan"><strong>Existe aussi en</strong></td>
</tr>
<tr>
<td align="center"><div class="Espace10"></div></td>
</tr>
<tr>
<td align="center"><span class="TexteCyan"><strong><?php echo utf8_encode($data['Contenance']); ?></strong></span></td>
</tr>
</table></td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Principe actif :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Principe_actif']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td align="left" valign="top" class="Cyan14Gras">Mode d'emploi :</td>
<td width="522" align="left" valign="top"><?php echo utf8_encode($data['Mode_emploi']); ?></td>
<td width="15"> </td>
</tr>
<tr align="left">
<td colspan="2" valign="top"><hr /></td>
<td><div class="Espace10"></div></td>
</tr>
<tr>
<td width="130" align="left" valign="top" class="Cyan14Gras">Type :</td>
<td align="left" valign="top"><?php echo utf8_encode($data['Type_Mode']); ?></td>
<td width="15"> </td>
</tr>
</table>
</td>
</tr>
</table>
<?php } ?>
Il entoure le tableau.
Je sais que ce n'est pas correct, mais crois moi, je suis vraiment basic en php...
0
Sinistrus Messages postés 1010 Date d'inscription mercredi 12 décembre 2007 Statut Membre Dernière intervention 6 juin 2023 17
24 sept. 2013 à 14:55
Merci de ton aide.
Cependant, je n'y arrives pas, sauf erreur de ma part :

<?php $db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS); mysql_select_db(MYSQL_BASE,$db);
$sql = 'SELECT * FROM '.$tb_produits.' WHERE Marque = "SIVODERM" ORDER BY Code';
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());?>
<table width="970" border="0" align="center" cellpadding="0" cellspacing="0"><tr>
<td align="center" class="CadreBlanc">
<div id="contentFlow" class="ContentFlow"><div class="loadIndicator"><div class="indicator"></div></div><div class="flow">
<?php while($data = mysql_fetch_assoc($req)){ ?>
<div class="item">

<img class="content" src="<?php echo URL_IMAGES; ?>produits/<?php echo $data['Image']; ?>.png" />

<div class="caption"><?php echo utf8_encode($data['Designation']); ?> - (<?php echo utf8_encode($data['Contenance']); ?>)</div>
</div>
<?php } ?>
</div><div class="globalCaption"></div><div class="scrollbar"><div class="slider"><div class="position"></div></div></div>
</div><div class="mouseoverCheckElement"></div></div></div></div>

Plus bas...

<?php
$sql = 'SELECT * FROM '.$tb_produits.' WHERE Marque = "SIVODERM" ORDER BY Code';
while($data = mysql_fetch_assoc($req)){ ?>
<table width="970" border="0" align="center" cellspacing="0" cellpadding="0">
<tr>
<td class="CadreGris"><strong><?php echo utf8_encode($data['Contenance']); ?></strong></td>
</tr>
</table>
<?php } ?>
0