Array, do, while, break, ou continue ?
Résolu
cheese42
Messages postés
860
Date d'inscription
Statut
Membre
Dernière intervention
-
Mihawk Messages postés 4315 Date d'inscription Statut Contributeur Dernière intervention -
Mihawk Messages postés 4315 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
alors voila un problème sur lequel je galère depuis 3 jours, je viens demander un peu d'aide =>
je veux afficher un résultat en forme de tableau, sur 2 colonnes horizontale maximum
et tout le résultat en vertical
je dois afficher comme ceci :
result1 - result2
result3 - result4
result5 - result6
etcetc jusqu'au nombre maximal récupéré en base
pour le moment,
j'ai une requête qui recup le nombre maxi:
<?php
$uuuuuuuuuuu = mysql_query("SELECT COUNT(*) AS nomdelacatego from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$doggggg = mysql_fetch_array($uuuuuuuuuuu);
$nombredecolonnes= $doggggg['nomdelacatego'];
ok, donc la c'est bon, j'ai le nombre maxi de result ,
ensuite pour recup les result,
<?php
$premsql = mysql_query("select * from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$nb1='0';
while ($doone = mysql_fetch_array($premsql) )
{
$nb1++;
// mes result
}
?>
mais comment faire ?
si je fais une boucle normale en while, le tableau s'affiche bien mais sous cette forme:
result1
result2
result3 etcetc
et si je fais un "for"
mon résultat est comme cela:
result1 - result1
result2 - result2
etcetc...
merci de votre aide ;), cdlt...
alors voila un problème sur lequel je galère depuis 3 jours, je viens demander un peu d'aide =>
je veux afficher un résultat en forme de tableau, sur 2 colonnes horizontale maximum
et tout le résultat en vertical
je dois afficher comme ceci :
result1 - result2
result3 - result4
result5 - result6
etcetc jusqu'au nombre maximal récupéré en base
pour le moment,
j'ai une requête qui recup le nombre maxi:
<?php
$uuuuuuuuuuu = mysql_query("SELECT COUNT(*) AS nomdelacatego from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$doggggg = mysql_fetch_array($uuuuuuuuuuu);
$nombredecolonnes= $doggggg['nomdelacatego'];
ok, donc la c'est bon, j'ai le nombre maxi de result ,
ensuite pour recup les result,
<?php
$premsql = mysql_query("select * from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$nb1='0';
while ($doone = mysql_fetch_array($premsql) )
{
$nb1++;
// mes result
}
?>
mais comment faire ?
si je fais une boucle normale en while, le tableau s'affiche bien mais sous cette forme:
result1
result2
result3 etcetc
et si je fais un "for"
mon résultat est comme cela:
result1 - result1
result2 - result2
etcetc...
merci de votre aide ;), cdlt...
A voir également:
- Array, do, while, break, ou continue ?
- Press esc to continue - Forum Clavier
- Fichier do - Forum Logiciels
- Fichier .pdf enregistré en .do ✓ - Forum PDF
- Prison break torrent magnet - Forum Cinéma / Télé
- My people do - Télécharger - Organisation
4 réponses
Et moi je ferai ça :
Comme ça en plus tu peux changer le nombre de résultats à mettre par ligne :)
Je n'ai pas testé y aura p'tete un ou deux effets de bords :P
$nbResultsPerLine = 2; $currentResultIndex = 1; $nbOfResults = count(mysql_fetch_array($premsql)); echo('<table><tr>'); while($donnee = mysql_fetch_array($premsql)){ if($currentResultIndex%$nbResultsPerLine != 0){ echo('<td>'.$donnee['madonnees'].'</td>'); }else{ echo('<td>'.$donnee['madonnees'].'</td></tr>'); if($currentResultIndex < $nbOfResults) echo('<tr>'); } $currentResultIndex++; }
Comme ça en plus tu peux changer le nombre de résultats à mettre par ligne :)
Je n'ai pas testé y aura p'tete un ou deux effets de bords :P
Hello,
Pour info ta requête est un peu lourde. Tu as fait une zone "catégorie" et une zone "première lettre de la catégorie" ? C'est dommage !
Est équivalent à :
Les expressions régulières sont un outil incontournable quelque soit le language
Mihawk
"La rigoureusité fait la qualité"
Pour info ta requête est un peu lourde. Tu as fait une zone "catégorie" et une zone "première lettre de la catégorie" ? C'est dommage !
select * from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego
Est équivalent à :
select * from categoriedescodes WHERE nomdelacatego regexp "^[ABCDE]" ORDER BY nomdelacatego
Les expressions régulières sont un outil incontournable quelque soit le language
Mihawk
"La rigoureusité fait la qualité"
bjr,
si je met "for",
cela fera
resul1- resul1
resul2-resul2
etcetc
alors que moi il faudrait,
result1 -result2
result3 - resul4
ma boucle doit avoir un souci ===>
$premsql = mysql_query("select * from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$nb1='0';
while ($doone = mysql_fetch_array($premsql) )
{
$nb1++;
?>
<tr align="center">
<?php
//for( $i = 0; $i < 2; $i++ )
//{
?>mes td ici
<?php
// continue;
// echo ''; // cette instruction ne sera jamais exécutée
//}
?>
</tr>
<?php
}
?>
</table>
si je met "for",
cela fera
resul1- resul1
resul2-resul2
etcetc
alors que moi il faudrait,
result1 -result2
result3 - resul4
ma boucle doit avoir un souci ===>
$premsql = mysql_query("select * from categoriedescodes WHERE premierelettre = 'A' OR premierelettre = 'B' OR premierelettre = 'C' OR premierelettre = 'D' OR premierelettre = 'E' ORDER BY nomdelacatego");
$nb1='0';
while ($doone = mysql_fetch_array($premsql) )
{
$nb1++;
?>
<tr align="center">
<?php
//for( $i = 0; $i < 2; $i++ )
//{
?>mes td ici
<?php
// continue;
// echo ''; // cette instruction ne sera jamais exécutée
//}
?>
</tr>
<?php
}
?>
</table>
super, merci à vous 2, je poste mon code si cela peut servir un jour à quelqu'un !!!!!
======================
<table align="center" width="600" border="2" bgcolor="#FFFFCC">
<tr align="center">
<td><br />
<table>
<?php
$uuuuuuuuuuu = mysql_query('SELECT COUNT(*) AS nomdelacatego from categoriedescodes WHERE nomdelacatego regexp "^[ABCDE]" ORDER BY nomdelacatego');
$doggggg = mysql_fetch_array($uuuuuuuuuuu);
$totaldecmbres = $doggggg['nomdelacatego'];
$nombredecolonnespremcatego = $totaldecmbres;
$premsql = mysql_query('select * from categoriedescodes WHERE nomdelacatego regexp "^[ABCDE]" ORDER BY nomdelacatego');
$nbResultsPerLine = 2;
$currentResultIndex = 1;
$nbOfResults = count(mysql_fetch_array($premsql));
echo('<tr>');
while($doone = mysql_fetch_array($premsql)){
if($currentResultIndex%$nbResultsPerLine != 0){
?>
<td align="center">
<table width="250" border="0" bgcolor="#FFCCFF">
<tr>
<td width="100" align="center"><a href="codesenvente.php?ask=<?php echo $doone['nomdelacatego']; ?>" style="color:#000000;"><img src="<?php echo $doone['imgcodesite']; ?>" alt="<?php echo $doone['nomdelacatego']; ?>" border="0" width="90" height="90" /></a></td>
<td width="100" align="center"><a href="codesenvente.php?ask=<?php echo $doone['nomdelacatego']; ?>" style="color:#000000;"><?php echo $doone['nomdelacatego']; ?></a></td>
<td width="50" align="center"><b><font color="#000000">(<?php echo $doone['numberdecetype']; ?>)</font></b></td>
</tr>
</table>
<br /><br />
</td>
<?php
}else{
?>
<td align="center">
<table width="250" border="0" bgcolor="#FFCCFF">
<tr>
<td width="100" align="center"><a href="codesenvente.php?ask=<?php echo $doone['nomdelacatego']; ?>" style="color:#000000;"><img src="<?php echo $doone['imgcodesite']; ?>" alt="<?php echo $doone['nomdelacatego']; ?>" border="0" width="90" height="90" /></a></td>
<td width="100" align="center"><a href="codesenvente.php?ask=<?php echo $doone['nomdelacatego']; ?>" style="color:#000000;"><?php echo $doone['nomdelacatego']; ?></a></td>
<td width="50" align="center"><b><font color="#000000">(<?php echo $doone['numberdecetype']; ?>)</font></b></td>
</tr>
</table>
<br /><br />
</td></tr>
<?php
if($currentResultIndex < $nbOfResults) echo('<tr>');
}
$currentResultIndex++;
}
echo('</tr>');
?>
</table>
</td>
</tr>
</table>
<br />