Probleme de boucle en php
Fermé
bilane
Messages postés
13
Date d'inscription
samedi 2 septembre 2006
Statut
Membre
Dernière intervention
21 mars 2007
-
10 mars 2007 à 07:12
bilane Messages postés 13 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 21 mars 2007 - 17 mars 2007 à 14:55
bilane Messages postés 13 Date d'inscription samedi 2 septembre 2006 Statut Membre Dernière intervention 21 mars 2007 - 17 mars 2007 à 14:55
A voir également:
- Probleme de boucle en php
- Easy php - Télécharger - Divers Web & Internet
- Retour a la ligne php ✓ - Forum PHP
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Php natif - Forum PHP
- Boucle cmd - Forum Programmation
1 réponse
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
920
10 mars 2007 à 11:18
10 mars 2007 à 11:18
salut,
en vrac :
- tu ne devrais pas utiliser <center> et <b> pour mettre en page mais une css, idem pour le tabeau.
- tu ne dois JAMAIS utiliser 'SELECT *' dans une requête mais toujours citer nommément les champs que tu souhaites récupérer.
pour l'erreur, elle doit venir de la connexion. faudrait voir ce qu'il y a dans ton include() et je ne m'y retrouve pas.
mais de toute façon je ne comprends pas ce que tu fais.
tu fais une boucle de A à Z, ok. mais le problème c'est qu'à chaque lettre tu devrais faire une requête sur la bdd pour savoir si elle contient des champs commençant par la dite lettre. cela permet aussi de ne pas afficher les lettres "vides".
en vrac :
- tu ne devrais pas utiliser <center> et <b> pour mettre en page mais une css, idem pour le tabeau.
- tu ne dois JAMAIS utiliser 'SELECT *' dans une requête mais toujours citer nommément les champs que tu souhaites récupérer.
pour l'erreur, elle doit venir de la connexion. faudrait voir ce qu'il y a dans ton include() et je ne m'y retrouve pas.
mais de toute façon je ne comprends pas ce que tu fais.
tu fais une boucle de A à Z, ok. mais le problème c'est qu'à chaque lettre tu devrais faire une requête sur la bdd pour savoir si elle contient des champs commençant par la dite lettre. cela permet aussi de ne pas afficher les lettres "vides".
11 mars 2007 à 08:51
Merci de votre aide, ça marche.
Mais, j’ai un autre problème si vous pouvez m’aider.
Je voulais afficher mes enregistrements sous forme d’un tableau de 3 lignes et 4 colonnes.
Mais la cellule (1,4) reste vide et il ya une quatrième ligne qui s’affiche.
Voici le code :
<?php require('connect.php.inc');
$db=connect(); ?>
<body>
<div id="corps">
<p><?php include("titre.php"); ?></p>
<p> </p>
<p><?php
$an=2006;
echo " ANNEE ".$an."<br><br>";
$req = mysql_query("SELECT DISTINCT num_jo, date_jo, type_jo FROM jo where DATE_FORMAT(date_jo,'%Y')='$an' ORDER BY date_jo ASC;");
$res = mysql_num_rows($req);
$i=0; $mois = ""; $j=0; $lien = "";
$nb_col = 4;
$k=0;
echo '<table id="tabjo" width="75%" border="1" cellspacing="0" align="center">';
WHILE ($i < $res){
$num = mysql_result($req,$i,"num_jo");
$type = mysql_result($req,$i,"type_jo");
$dat = mysql_result($req,$i,"date_jo");
list($year, $month, $day) = explode("-", $dat);
$months = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
$aux = $months[$month-1];
if ($k==$nb_col) {
echo "</tr>";
$k=0;
}
if ($k==0) {
echo "<tr>";
}
if ($aux != $mois) { if ($mois != '') echo "<td valign='top' align='center' width=33% height=1 ><font color='blue'>".$mois."<br><br>".$lien."</font></td>"; $mois = $aux; $lien = ""; $k++;}
if ( $type == "n")
{$lien .= '<a href=jof.php?n='.$num.'&type='.$type.'&date='.$dat.'> n° '.$num.'</a><br>'; }
else { if ( $type == "sp")
{$lien .= '<a href=jof.php?n='.$num.'&type='.$type.'&date='.$dat.'> spécial n° '.$num.'</a><br>'; }
else { if ( $type == "spelec")
{$lien .= '<a href=jof.php?n='.$num.'&type='.$type.'&date='.$dat.'>spécial élecion n° '.$num.'</a><br>'; }
else { if ( $type == "spreg")
{$lien .= '<a href=jof.php?n='.$num.'&type='.$type.'&date='.$dat.'> spécial élection régional n° '.$num.'</a><br>'; }
else { if ( $type == "excep")
{$lien .= '<a href=jof.php?n='.$num.'&type='.$type.'&date='.$dat.'> exceptionnel n° '.$num.'</a><br>'; }}}}}
$i++;
} echo "<td valign='top' align='center' width=33% height=1><font color='blue'>".$mois. "<br><br>".$lien."</td></font>";
if ($k>0 && $k<$nb_col) {
while ($k<$nb_col) {
echo "<td> </td>";
$k++;
}
echo "</tr>";
}
echo '</table> <br><br><br> ';
mysql_close();
?>
merci d'avance
11 mars 2007 à 14:08
peux-tu me coller le html obtenu ? ce sera plus rapide pour moi que d'interpréter ton code.
à la première lecture je ne comprends pas :
pourquoi fermerais-tu la balise '<tr>' alors qu'elle n'a pas encore pu être ouverte ?
enfin je crois... ;o)
17 mars 2007 à 14:55
excuse moi, j'ai eu un probleme de connexion d'internet ces derniers jours, le html obtenu est un tableau comme ceci :
Janvier Février Mars
n° 1 n° 3 n° 5
n° 2 n° 4 n° 6
Avril Mai Juin Juillet
n° 7 n° 9 n° 11 n°13
n° 8 n° 10 n° 12 n°14
Aoûtl Septembre Octobre Novembre
n° 15 n° 17 n° 19 n°21
n° 16 n° 18 n° 20 n° 22
Décembre
n°23
n°24
Merci d'avance