Probleme sur une boucle

cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 mars 2011 - 3 avril 2007 à 23:50
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 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.

Merci pour l'aide que vous pourrez m'apporter.

3 réponses

jnbrunet Messages postés 258 Date d'inscription samedi 25 décembre 2004 Statut Membre Dernière intervention 13 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-
0
JulSoft Messages postés 354 Date d'inscription dimanche 3 juin 2001 Statut Membre Dernière intervention 11 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...
0
cs_christobal Messages postés 208 Date d'inscription jeudi 3 octobre 2002 Statut Membre Dernière intervention 31 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.

Une autre idée SVP
0
Rejoignez-nous