Je n'arrive pas à foreach à travailler. Peut-être que je ne le comprends pas correctement.Looping avec while et foreach en PHP
Voici mon code:
$statement = "SELECT * FROM categories ORDER BY name ASC";
$query = mysql_query($statement)
...
...
$cals = array("sports","general","other","clubs");
foreach ($cals as $value)
{
/* echo "<h3>".$value."</h3>";
*/ echo "<table width='100%'>";
while ($array = mysql_fetch_array($query))
{
if ($array['calendar'] == $value)
{?>
<tr>
<td><?php echo $array['name']; ?></td>
<td><a onclick="update_form('<?php echo $array['name']; ?>', '<?php echo $array['calendar']; ?>')" href="#">Edit</a></td>
</tr>
<?php }
}
echo "</table><br />Value: $value";
}
Le but de cela est d'avoir le foreach changer l'instruction if. J'avais prévu pour la déclaration if de dire: if ($array['calendar'] == "sports")
la première fois, if ($array['calendar'] == "general")
la deuxième fois, et ainsi de suite. Toutefois, il affiche toutes les tables (dans le code source), mais aucune ligne de table n'est créée après la première pour chaque valeur de tableau. Par exemple, je vois correctement la table des sports, mais je ne vois pas de rangées pour les tables générales, les autres ou les clubs. Il y a des enregistrements dans cette base de données qui devraient apparaître dans chacun d'entre eux. Pourrait-il être un problème avec le temps et si les déclarations? Si je mets manuellement la valeur $ dans l'instruction if à l'une des valeurs du tableau, elle affiche les enregistrements corrects.
Qu'est-ce qui me manque?
données Exemple:
dans la base de données MySQL -
tableaucatégories. champs:
- id
- Nom
- NUM_EVENTS
- calendrier
- CALENDAR_URL
Tous ces champs sauf le champ calendrier a des données fictives en elle.
Actuellement, j'ai 5 enregistrements là-bas. Chacun a une valeur de calendrier différente. L'un est le sport, l'autre les clubs et le général. En fonction de la valeur que je place en premier dans le tableau, cela montre seulement qu'une table, de toutes les valeurs avec la première valeur du tableau.
Voici le code source de la page qui:
<table width='100%'><tr>
<td>test4</td>
<td><a onclick="update_form('test4', 'sports')" href="#">Edit</a></td>
</tr>
<tr>
<td>test5</td>
<td><a onclick="update_form('test5', 'sports')" href="#">Edit</a></td>
</tr>
</table><br />Value: sports<table width='100%'></table><br />Value: general<table width='100%'></table><br />Value: other<table width='100%'></table><br />Value: clubs
Il serait vraiment utile de voir un exemple de jeu de données. Cela semble généralement correct (même si je ne suis pas sûr de ce que l'appel 'next()' est tout au sujet). – timdev
Je me suis débarrassé de ça. J'essayais juste des choses ... lol ... Un échantillon de données ... comme ce qui est dans la base de données? Je vais voir si je peux trouver quelque chose. – eagle0042
Très bien, je n'étais pas sûr de la façon de fournir des exemples de données, mais j'ai ajouté quelques informations supplémentaires. – eagle0042