PHP MySQL récupérer données dans tableau [Résolu/Fermé]

Messages postés
984
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
25 septembre 2019
- - Dernière réponse : Sinistrus
Messages postés
984
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
25 septembre 2019
- 1 avril 2015 à 18:48
Salut à tous !

J'essaie de faire afficher dans un tableau sur 6 colonnes et 5 lignes les données de ma table MySQL..

<table width="100%" border="0" cellspacing="10" cellpadding="0">
<tbody>
<?php
$NbrCol =6;
$NbrLigne =5;
for ($i=1; $i<=$NbrLigne; $i++) { 
?>
<tr>
<?php for ($j=1; $j<=$NbrCol; $j++) { ?>
<?php $sql = "SELECT * FROM tb_ci_marques ";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); while($data = mysql_fetch_assoc($req)){ ?>
<td width="159" height="80" bgcolor="#CCCCCC"><?php echo $data["Marque"]; ?></td>
<?php } ?>
<?php } ?>
</tr>
<?php } ?>
</tbody>
</table>

Seulement voilà j'y arrive pas... pouvez-vous me donner un petit coup de main svp ?
Afficher la suite 

4 réponses

Messages postés
2
Date d'inscription
mercredi 1 avril 2015
Statut
Membre
Dernière intervention
1 avril 2015
0
Merci
essaye plutôt (en prenant un exemple de 3 table)

Sachant qu'il te faut un champ commun dans toutes tes tables (ex : numéro d'une fiche)

$result3="SELECT * FROM `ta_table`";
$execution_requete3 = mysql_query($result3);
while($total3 = mysql_fetch_array($execution_requete3))
{
$val3=$total3["ton_champ_commun"];
$result2="SELECT * FROM `ta_table2` WHERE ton_champ_commun='$val3'";
$execution_requete2 = mysql_query($result2);
while($total2 = mysql_fetch_array($execution_requete2))
{
$val2=$total2["ton_champ_commun"];
$result="SELECT * FROM `ta_table3` WHERE ton_champ_commun='$val2'";
$execution_requete = mysql_query($result);
while($total = mysql_fetch_array($execution_requete))


Puis tu insere dans tes colones avec un echo

       <td class="celulle"><? echo $total["Le_champ_que_tu_souhaite_faire_apparaitre"]; ?></td>
<td class="celulle"><? echo $total2["Le_champ_que_tu_souhaite_faire_apparaitre"]; ?></td>


N'oublie pas que ton "while" est une boucle et servira si tu veux que les cases se remplisse automatiquement en cas de nouvelle donné dans ta base. sinon enleve les "while" si tu cherche un affichage statique.
Messages postés
984
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
25 septembre 2019
13
0
Merci
Merci mon vieux !

Voici ce que j'ai fais aussi et qui fonctionne :
<?php
$NbrCol = 6;
$query = "SELECT * FROM tb_ci_marques ORDER BY Marque ASC;";
$result = mysql_query($query);
$NbreData = mysql_num_rows($result);
$NbrLigne = 0;
if ($NbreData != 0) {
$j = 1;
?>
	<table width="100%" border="0" cellspacing="10" cellpadding="0">
	<tbody>
<?php while ($val = mysql_fetch_array($result)) {if ($j%$NbrCol == 1) {$NbrLigne++;$fintr = 0; ?>
<tr>
<?php } ?>
<td align="center" valign="middle">

<a href="<?php echo URL_RACINE; ?>/categories/<?php echo str_replace($search, $replace, strtolower($val['Marque'])); ?>.php">
<img src="<?php echo URL_IMAGES; ?>/logos/<?php echo str_replace($search, $replace, $val['Marque']); ?>.png" width="159" height="80" title="<?php echo $val['Marque']; ?>" alt="<?php echo $val['Marque']; ?>" />
</a>

</td>
<?php if ($j%$NbrCol == 0) {$fintr = 1; ?>
</tr>
<?php }$j++;} if ($fintr!=1) { ?>
</tr>
<?php } ?>
</tbody>
</table>
	
<?php } ?>

Merci beaucoup pour ton aide !
Messages postés
4889
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
9 octobre 2019
857
0
Merci
'lut, avertissement très important:
L'extension MySQL (fonctions mysql_*) est obsolète et il ne faut absolument plus s'en servir!
Change pour PDO ou MySQLi maintenant, pendant que tu es en train d'apprendre et que ton code est petit!
from human import idiocy
del idiocy
Messages postés
984
Date d'inscription
mercredi 12 décembre 2007
Statut
Membre
Dernière intervention
25 septembre 2019
13
0
Merci
Oula ! Merci de m'avoir prévenu gravgun ! donc bannir les fonctions
mysql_*
et diriger vers
mysqli
ou
PDO
.