<table> obligatoire pour afficher une série de données [Résolu/Fermé]

Signaler
Messages postés
583
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
30 décembre 2019
-
 Profil bloqué -
Bonjour,

J'ai un intranet en cours d'élaboration.
Je souhaite afficher les données d'une table dans des divs, qui elles mêmes sont dans des accordions (jQuery).

Mes questions sont :

* Pour afficher mes données dans une div puis sauter une ligne, rajouter la même div, afficher les données et ainsi de suite, dois-je obligatoirement insérer des balises <table> ? (Sinon toutes les données s'affichent à la suite).


* Je souhaiterais que le titre de mes accordions dépendent de valeurs de base de données là encore ! --> Même question : doit-il y avoir les balises <table> ? Sinon comment faire ?

* Dernière question (oui oui promis!!) : Je souhaite afficher dans chaque accordion, les données ou un champ précis correspondant au titre de l'accordion dans lequel il se trouve.


Voici le bout de mon code concerné :

<div id="accordion">
<h3>Programmation de Mars 2013</h3>
<div>

<div id="tableau-etat-film"> 
<div class="date">
<br>
27/03/2013
</div>
<div class="film">
LE TITRE DU FILM EN FRANCAIS
<font color="grey"><p>NOM SUR LE DCP</p></font>
</div>
<div class="etats">
<div class="smartjog"><img src="images/ok_g.png" width="35" height="35" /> </div>
<div class="doremi"><img src="images/no_ok_g.png" width="35" height="35" /></div>
<div class="kdm"><img src="images/no_ok_g.png" width="30" height="30" /> </div> 
<div class="show"><img src="images/no_ok_g.png" width="30" height="30" /></div>
</div>
</div> 
<div id="tableau-etat-film-bas">
<center><p>Créer un rapport - Supprimer</p></center>
</div>
<br><br>
				


Merci de votre aide..!

Romain

5 réponses


Salut,

1) Non, du tout, tu peux très bien mettre des echo "<div class="taclass">;" au milieu de ta requête (du style pour chaque entrée, écrire echo... puis la réponse, etc)

2) La encore même réponse, rien ne t'empêche de faire pour chaque ligne de données un echo ton accordéon, ton titre, ton div, tes données, la fermeture de ton div puis de ton accordéon

3) Tu peux mettre le titre de ton accordion dans une variable php et la reprendre pour faire une requête dans ta bdd ou (deuxième solution) générer les titres des accordions en fonction des données de ta bdd (et non l'inverse)
Messages postés
583
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
30 décembre 2019
26
Hello,

Tout d'abord, merci de m'aider car ton pseudo s'affiche souvent sur mes posts en ce moment ^^

Donc, en cherchant bien j'ai trouver des explications grace à tes conseils (enfin!!!)

Si j'ai bien capté :
Je dois mettre un
echo
devant chaque ligne en HTML et finir par un
;
comme pour tout code PHP.

Suis-je vraiment obliger de mettre un
echo
partout comme je l'ai fait là :


while($data = mysql_fetch_assoc($req))
    {
    // on affiche les informations de l'enregistrement en cours
    


/*echo '<div style="width:100px; background-color:#DDDDDD;">';
echo $data['titre_dcp'];
echo '<p>eee</p>';
echo '</div>'; */






		echo			'<div id="tableau-etat-film">
					<div class="date">
					<br>';
		echo			'<p>27/03/2013</p>';
		echo			'</div>';
		echo			'<div class="film">';
		echo			$data['titre_film']; 
		echo			'<font color="grey"><br></font>';
		echo			$data['titre_dcp']; 
		echo			'</div>
					<div class="etats">';
		echo			'<div class="smartjog"><img src="images/ok_g.png" width="35" height="35" /> </div>
							</div>
							</div>';
		
		echo			'<div id="tableau-etat-film-bas">';
		echo			'<center><p>Créer un rapport - Supprimer</p></center>';
		echo			'</div>';
		echo			'<br><br>';
					
					
	}
?>	





En revanche, le font color ne marche plus...

De rien !

Non, tu peux mettre echo "xxxx".$xx."xxx".$... etc

D'ailleurs "<div class='xxx'>xxx</div>".$variable."etc" marche aussi

Si ton font color marche plus, c'est que le lien doit avoir une erreur (sur la classe ou autre) au pire, mets directement le css dedans mais ça devrait marcher
Messages postés
583
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
30 décembre 2019
26
Alors par contre, comment fait-on pour avoir une boucle dans une autre boucle ?

A quel moments doit-on insérer les incollades pour refermer la boucle ?
J'ai essayé plusieurs solutions mais... sans résultat...

	
	<?php
// on crée la requête SQL
$sql = 'SELECT prog FROM progs';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
    {
echo		'<h3>Programmation de &nbsp;';
echo		$data['prog']; 		 
echo		'</h3>';
echo 		'<div>';
	
?>	
<?php
// on crée la requête SQL
$sql = 'SELECT titre_film, titre_dcp, date_show FROM etats_films';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
   
    {
    	
    // on affiche les informations de l'enregistrement en cours

		echos du centre
				
	}
?>				
					
						
<?php				

echo '</div>';

	}
?>
Profil bloqué
Le même code écrit plus simplement (si le précédant marche, celui-ci aussi) :

<?php
// on crée la requête SQL
$sql = 'SELECT prog FROM progs';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
echo '<h3>Programmation de  '.$data['prog'].'</h3>'. '<div>';

?>
<?php
// on crée la requête SQL
$sql = 'SELECT titre_film, titre_dcp, date_show FROM etats_films';

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))

{

// on affiche les informations de l'enregistrement en cours

echos du centre

}
?>


<?php

echo '</div>';

}
?>
Messages postés
583
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
30 décembre 2019
26
Ouaip le code marche y'a pas de souci. En revanche, ma "sous fonction" ne marche pas.
J'ai donc :

<?php
// Première requête BDD-1 table-1

{
echo '<h3>Programmation de '.$data['prog'].'</h3>'. '<div>';

?>

<?php
// Deuxième requête (dans une table différente) BDD-1 table-2

{
mes echo';
}
?>


<?php

echo '</div>';

} // fin de la boucle de ma première requête
?>


La boucle centrale marche bien mais la première boucle qui se termine à la fin ne marche pas...
J'ai essayé plusieurs cas différents. Lorsque je ferme ma boucle directement dans la première requête, mes valeurs s'affichent mais pas en tant que titres d'accordion.
Profil bloqué
Peut-être que le problème vient du fait que tu fermes le <?php> alors que tu es dans une boucle (donc dans du php), je ne suis pas spécialiste en la matière, mais essaie de mettre tout ton code php dans une seule balise php et non plein.
PaulCézanne
Messages postés
583
Date d'inscription
samedi 27 janvier 2007
Statut
Membre
Dernière intervention
30 décembre 2019
26
Mon problème venait que mes variables avaient le même nom... La honte...
Je te remercie de l'aide précieuse que tu m'as apporté !! :-)

Romain
Profil bloqué
Lol ! Tant mieux alors si c'est résolu