Aller au contenu

Affichage du résultat d'un boucle


Sujets conseillés

Posté

Bonjour,

J'ai fait un script qui génére dans une fonction une boucle de date prise dans une db [TAG] (ca fonctione).

J'ai ensuite une autre boucle via db) pour afficher des articles dans un tableau (ca fonctionne).

Mais dans un des articles j'ai mon 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 '<table cellpadding="5">';
for($f=0;$f<count($tablo_ac);$f++){

if($f%$nbcol==0)
echo '<tr>';
echo '<td valign="top"><div id="AccueilTitreInfo">'.$tablo_ac[$f]['titre'].'</div>'.str_replace('{{insert_date_accueil}}', display_date_boucle_accueil(), $tablo_ac[$f] ['article']).'<br /><br /></div></td>';
if($f%$nbcol==($nbcol-1) or $f==(count($tablo_ac)-1))
echo '</tr>';
}
echo '</table>';
// fin construction du tableau

//affichage de la boucle seule
//echo $html=display_date_boucle_accueil();

mysql_free_result($boucleacceuil);
?>

En somme chaque boucle marche indépandanement l'une de l'autre, mais pas ensemble.

Pour info se systeme de tage et de fonction est acctuellement utilisé mais pour l'affichage d'un seul article par page, et ca marche trés bien.

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

Posté

Bonjour,

L'erreur provient de ta ligne :

echo '<td valign="top"><div id="AccueilTitreInfo">'.$tablo_ac[$f]['titre'].'</div>'.str_replace('{{insert_date_accueil}}', display_date_boucle_accueil(), $tablo_ac[$f] ['article']).'<br /><br /></div></td>';

En effet, tu ne peux pas mettre un echo qui doit afficher, entre autre parmi les caractères, ta fonction qui elle ne retourne pas un seul résultat (avec return par exemple). Il te faut la scinder.

J'ai survolé ton code (je ne me suis pas apesenti sur ce qui est retourné ou affiché par ta fonction), mais essaye au moins ça, ça devrait te mettre sur la bonne voie :

echo '<td valign="top"><div id="AccueilTitreInfo">'.$tablo_ac[$f]['titre'].'</div>'.str_replace('{{insert_date_accueil}}';

display_date_boucle_accueil();

echo $tablo_ac[$f] ['article']).'<br /><br /></div></td>';

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...