[RESOLU] Comment afficher des information d'une BDD mysql par colonnes et lignes

Petit nouveau ! | 7 Messages

02 janv. 2023, 12:10

Bonjour à vous,

Meilleurs Vœux pour cette nouvelle année !

J'ai une base de données, ou pour faire simple, je veux afficher une information par ligne et par colonne :

la base de données ressemble à ceux-ci :

id
nom
info_a
info_b
date

Cela fonctionne, mais c'est moi qui code l'affichage tant par ligne et tant par colonne :(

Code : Tout sélectionner

$lecture = $connexion->query("SELECT * FROM articles"); $data = $lecture->fetch(); echo '<table width="1000" border="0"> <tr> <td width="150" colspan="1"><center>'.$data['nom_1'].'</center></td> <td width="150" colspan="1">'.$data['info_a1'].'</td> <td width="150" colspan="1">'.$data['info_b1'].'</td> <td width="150" colspan="1">'.$data['date1'].'</td> </tr> <tr> <td width="150" colspan="1"><center>'.$data['nom_2'].'</center></td> <td width="150" colspan="1">'.$data['info_a2'].'</td> <td width="150" colspan="1">'.$data['info_b2'].'</td> <td width="150" colspan="1">'.$data['date2'].'</td> </tr> <tr> <td width="150" colspan="1"><center>'.$data['nom_3'].'</center></td> <td width="150" colspan="1">'.$data['info_a3'].'</td> <td width="150" colspan="1">'.$data['info_32'].'</td> <td width="150" colspan="1">'.$data['date3'].'</td> </tr> <tr> <td width="150" colspan="1"><center>'.$data['nom_x'].'</center></td> <td width="150" colspan="1">'.$data['info_x2'].'</td> <td width="150" colspan="1">'.$data['info_x2'].'</td> <td width="150" colspan="1">'.$data['datex'].'</td> </tr> </table>' $lecture->closeCursor();
Pour le contenu, par exemple :

id | nom | info_a | info_b | date
1 | nom1 | info_a1 | info_b1 | date1
2 | nom2 | info_a2 | info_b2 |date2
3 | nom3 | info_a3 | info_b3 |date3
4 | nom4 | info_a4 | info_b4 |date4
xx| xxxxx| xxxx | xxxx |xxxxx
xx| xxxxx| xxxx | xxxx |xxxxx
xx| xxxxx| xxxx | xxxx |xxxxx

Je voudrais donc définir un nombre de ligne et de colonne pour afficher le contenu si dessus, comme ci :

nom1 nom2 nom3 nom4
info_a1 info_a2 info_a3 info_a4
info_b2 info_b2 info_b3 info_b4
date1 date2 date3 date4

nom5 nom6 nom7 nom8
info_a5 info_a6 info_a7 info_a8
info_b5 info_b6 info_b7 info_b8
date5 date6 date7 date8

nom x nom x nom x nom x
info_ax info_ax info_ax info_ax
info_bx info_bx info_bx info_bx
datex datex datex datex

et ainsi de suite

Comment puis je faire, pour donc afficher sur plusieurs ligne par 4 colonnes (en variable au cas ou je veuille en mettre 3, 4 ou 5.

Merci beaucoup pour votre aide,
Bien cordialement,
Christophe

Mammouth du PHP | 2445 Messages

02 janv. 2023, 13:38

il faut parcourir le retour de $lecture->fetch()
si cela fonctionne, cela ne retourne pas du tout quelque chose que l'on peut deviner, donc il nous faudrait le code de la fonction pour voir s'il y a moyen de faire quelque chose ou s'il faut une autre fonction basée sur https://www.php.net/manual/fr/mysqli-re ... ch-all.php par exemple.

Petit nouveau ! | 7 Messages

02 janv. 2023, 15:51

Merci pour votre retour,

Voici le code :
j'affiche chaque information manuellement en mettant le ID dans la requête, que je structure dans un tableau rangé en fonction des balises TR et TD, mais pas pratique, donc je voudrais afficher avec une boucle je suppose, en choisissant le nombre de ligne et le nombre de colonne,

Code : Tout sélectionner

<html> <head> <title>test affichage</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php require_once('connexion.php'); include 'connexion.php'; $lecture1 = $connexion->query("SELECT * FROM affiche WHERE id='1'"); $data1 = $lecture1->fetch(); $lecture2 = $connexion->query("SELECT * FROM affiche WHERE id='2'"); $data2 = $lecture2->fetch(); $lecture3 = $connexion->query("SELECT * FROM affiche WHERE id='3'"); $data3 = $lecture3->fetch(); $lecture4 = $connexion->query("SELECT * FROM affiche WHERE id='4'"); $data4 = $lecture4->fetch(); $lecture5 = $connexion->query("SELECT * FROM affiche WHERE id='5'"); $data5 = $lecture5->fetch(); $lecture6 = $connexion->query("SELECT * FROM affiche WHERE id='6'"); $data6 = $lecture6->fetch(); $lecture7 = $connexion->query("SELECT * FROM affiche WHERE id='7'"); $data7 = $lecture7->fetch(); $lecture8 = $connexion->query("SELECT * FROM affiche WHERE id='8'"); $data8 = $lecture8->fetch(); $lecture9 = $connexion->query("SELECT * FROM affiche WHERE id='9'"); $data9 = $lecture9->fetch(); echo ' <center> <table width="1000" border="1"> <tr> <td width="150" colspan="1"> <center><u>'.$data1['nom'].'</u></center> <center>'.$data1['info1'].'</center> <center>'.$data1['info2'].'</center> <center>'.$data1['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data2['nom'].'</u></center> <center>'.$data2['info1'].'</center> <center>'.$data2['info2'].'</center> <center>'.$data2['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data3['nom'].'</u></center> <center>'.$data3['info1'].'</center> <center>'.$data3['info2'].'</center> <center>'.$data3['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data4['nom'].'</u></center> <center>'.$data4['info1'].'</center> <center>'.$data4['info2'].'</center> <center>'.$data4['date'].'</center> </td> </tr> <tr> <td width="150" colspan="1"> <center><u>'.$data5['nom'].'</u></center> <center>'.$data5['info1'].'</center> <center>'.$data5['info2'].'</center> <center>'.$data5['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data6['nom'].'</u></center> <center>'.$data6['info1'].'</center> <center>'.$data6['info2'].'</center> <center>'.$data6['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data7['nom'].'</u></center> <center>'.$data7['info1'].'</center> <center>'.$data7['info2'].'</center> <center>'.$data7['date'].'</center> </td> <td width="150" colspan="1"> <center><u>'.$data8['nom'].'</u></center> <center>'.$data8['info1'].'</center> <center>'.$data8['info2'].'</center> <center>'.$data8['date'].'</center> </td> </tr> <tr> <td width="150" colspan="1"> <center><u>'.$data9['nom'].'</u></center> <center>'.$data9['info1'].'</center> <center>'.$data9['info2'].'</center> <center>'.$data9['date'].'</center> </td> </tr> </table> </center>'; $lecture1->closeCursor(); $lecture2->closeCursor(); $lecture3->closeCursor(); $lecture4->closeCursor(); ?> </body> </html>
Bien cordialement,

Petit nouveau ! | 7 Messages

06 janv. 2023, 12:31

Bonjour,

J'ai enfin trouvé,

Si ca peut aider quelqu'un, voici le code :

if (mysqli_num_rows($result) > 0) {
// Affichage des données en 4 colonnes
echo "<center><table>";
echo "<tr>";
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
if ($i % 4 == 0 && $i > 0) {
echo "</tr>";
//echo "<br><br>";
echo "<tr>";
}
echo "<td width='200'><center><br>" . $row['id'] ."<br>". $row['info1'] . "<br>". $row['info2'] . "<br>". $row['date'] . "</center><br><br></td>";
$i++;
}
echo "</tr>";
echo "</table></center>";
} else {
echo "0 résultat";
}