cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011
-
3 avril 2007 à 23:50
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011
-
4 avril 2007 à 13:18
bonjour,
j'ai codé une page qui génére dans une fonction une boucle de date prise dans une db (ca fonctione).
J'ai ensuite une autre boucle (via db) pour afficher des articles dans un tableau (ca fonctionne).
Mais dans un des article j'ai un tag qui doit en téhorie être remplacé par le résultat de la fonction; et la ca ne marche plus.
La liste des dates ne s'affiche pas et je n'est pas d'erreur php. De plus j'ai a la place du tag le point résultant du <li></li> qui encadre chaque ligne du résultat de la boucle.
Le plus simple serait de vous montrer le code.
<?php
// Connexion Serveur
require_once('Connections/db.php');
// Récupere la date du serveur
$date_serveur = date("Y-m-d");
// Selection des dates de sortie
mysql_select_db($database_connect, $connect);
$query_boucleacceuil = "SELECT * FROM date WHERE date >= '$date_serveur' ORDER BY date ASC";
$boucleacceuil = mysql_query($query_boucleacceuil, $connect) or die(mysql_error());
$row_boucleacceuil = mysql_fetch_assoc($boucleacceuil);
$totalRows_boucleacceuil = mysql_num_rows($boucleacceuil);
// Fonction pour la boucle
function display_date_boucle_accueil()
{
global $boucleacceuil, $row_boucleacceuil;
// La boucle
do {
$html.= '<li class="txt">'.$row_boucleacceuil['lib'].' - '.$row_boucleacceuil['type'].'</li>';
} while ($row_boucleacceuil = mysql_fetch_assoc($boucleacceuil));
// Fin de la boucle
return $html;
}
// Fin de la fonction
// récupération des articles
$req_ac = 'SELECT * FROM accueil WHERE accueil.aff_article="1" ORDER BY accueil.id ASC';
// Récup le résultat dans un table
$res_ac = mysql_query($req_ac);
while($data_ac = mysql_fetch_array($res_ac)) {
// on stocke les données
$tablo_ac[]=$data_ac;
}
// Affichage dans un tableau de N colonne
$nbcol=3;
// construction du tableau
echo '';
for($f=0;$f<count($tablo_ac);$f++){
if($f%$nbcol==0)
echo '----
';
echo ''.$tablo_ac[$f]['titre'].'
'.str_replace('{{insert_date_accueil}}', display_date_boucle_accueil(), $tablo_ac[$f] ['article']).', ';
if($f%$nbcol==($nbcol-1) or $f==(count($tablo_ac)-1))
echo '';
}
echo '
';
// fin construction du tableau
//affichage de la boucle seule
//echo $html=display_date_boucle_accueil() ;
mysql_free_result($boucleacceuil);
?>
J'ai fait plein de supposition la seule conclusion qu'il me reste c'est qu'une boucle dans une boucle c'est pas top.
Pour info se systeme de tage et de fonction je l'utilise mais pour l'affichage d'un seule article est ca marche tres bien.
jnbrunet
Messages postés258Date d'inscriptionsamedi 25 décembre 2004StatutMembreDernière intervention13 novembre 2012 4 avril 2007 à 01:35
Je regarde vite et je vois ca :
while($data_ac = mysql_fetch_array($res_ac)) {
// on stocke les données
$tablo_ac[]=$data_ac;
}
Je n'ai pas testé, mais j'ai l'impression que tu n'entres absolument rien dans ton tableau,
il est possible que je me trompe, mais je n'ai jamais vu un tableau se remplir sans spécifier aucun index...
Pour ce qui est d'insérer plusieurs boucle l'une dans l'autre, ça m'a jamais posé de problème, et je ne crois pas que ca en pose non plus.
-Jn-
JulSoft
Messages postés354Date d'inscriptiondimanche 3 juin 2001StatutMembreDernière intervention11 mars 2013 4 avril 2007 à 09:12
tu peux effectivement remplire un tableau comme ça en PHP, il ajoutte un ligne chaque fois...
Ensuite, tu peux faire "while($row_boucleaccueil = mysql_fetch_assoc($boucleacceuil)){
// affichage de la ligne
}", c'est pas mal plus simple comme ça qu'avec le do... while
A mon avis ton problème est qu'il n'y a aucun article dont la date est plus grande que la date du serveur. La boucle while permet de ne rien afficher s'il n'y ap as de resultats...
cs_christobal
Messages postés208Date d'inscriptionjeudi 3 octobre 2002StatutMembreDernière intervention31 mars 2011 4 avril 2007 à 13:18
jnbrunet : mon tableau s'incrémente de une cellule a hauteur de 3 par ligne justqu'a ce qu'il ne trouve plus de données. Pour infos c'est ce qui fonctionne acctuellement
Julsoft : j'avais déjà testé ce type de boucle. La différence c'est qu'elle n'affiche rien comme si la fonction n'était pas prise en charge. En ce qui concerne la requete "boucleacceuil" elles me permet d'avoir les dates des prochaines sorties. Donc supperieur a la date serveur.