# PHP > PHP & Base de donnes > [MySQL] remplir tableau  partir de la base de donnes

## janyoura

Salut
je veux remplir un tableau dons les lignes sont les entres de la tables et les colonnes sont certains champs de la table de la base de donne.
Je ne suis pas arriver  concevoir la structure gnrale de ce tableau, j'ai pris comme exemple le tutoriel: 
http://j-reaux.developpez.com/tutori...-tableau-html/
J'ai voulu faire affichage "en ligne" avec BD mais la j'ai pas bien compris l'exemple qu'on a donn, en plus j'ai trouv du mal  convertir les fonctions de mysql vers PDO (parce que je suis dbutante et j'ai appris  programmer seulement avec PDO) , du fait j'ai fais un code avec pleins de fautes  ::?:  (d'ailleurs il n'a pas fonctionn) 
Pouvez vous m'aidez  le corriger? merci
le code doit afficher :
tableau avec 3 colonnes(images/titre/anneSortie) et les lignes sont aux nombre des entres de la table cd_film
le code:


```

```

----------


## EIN-LESER

Il serait plus simple de passer par un foreach:


```

```

Pour parcourir une liste ou un tableau c'est plus simple car tu n'a pas a tenir compte de la longueur du tableau, sa se gre en autonome.

----------


## janyoura

Bonjour
s'il vous plait, est ce que cette requete retourne bien le nombre de cellules  remplir?


```
$NbreData = $bdd->query('SELECT COUNT(*) FROM cd_film');
```

----------


## EIN-LESER

ta requte te retournera le nombre dentre dans ta table.

Mais comme dit un foreach serait plus simple car tu auras pas a connaitre la longueur du rsultat de la requte.

----------


## janyoura

merci
Quelle partie de mon code devrai-je changer? ou le tout devra tre chang en utilisant foreach?

----------


## EIN-LESER

> merci
> Quelle partie de mon code devrai-je changer? ou le tout devra tre chang en utilisant foreach?


En fait au lieu de determiner la longueur de ta reponse, de stoquer le resultat "compt" dans une variable et de t'en servir pour delimitert l'action de ton while tu remplace le ou les while par des foreach .
Ensuite tu pourra supprimer ce qui correspond a 


```
$NbreData = $bdd->query('SELECT COUNT(*) FROM cd_film');
```

et voila   Theoriquement  ::):

----------


## janyoura

mon but c'est d'afficher un tableau qui ressemble  celui dans la pice jointe,  partir des donnes de la base de donne

----------


## RunCodePhp

> est ce que cette requete retourne bien le nombre de cellules  remplir?


Oui, mais il n'est pas utile de faire 2 requtes SQL pour a, comme 1 pour rcuprer les lignes et la 2me pour obtenir le nombre.

Fais juste 1 requtes, celle qui rcupre les les lignes (les films).
Ensuite, suffit de procder en 2 temps.
1/ On stock toutes les lignes dans un tableau.
Aprs, uffit de compter combien d'lments contient le tableau pour obtenir le nombre total de film.
fonction : count()
2/ On boucle sur le tableau obtenu prcdemment

Exemple simple :


```

```

Ceci dit, normalement rowCount() retourne le nombre total du rsultat :


```

```

A voir.

Ensuite, suffit de boucler avec un foreach() :


```

```

Il y a 3 colonnes (images, titre, anneSortie)
Il pas vraiment ncessaire de connaitre le nombre total,  moins de vouloir l'afficher avant la fin de la boucle.
J'y ai rajout un compteur ($cpt) dans le cas o ce serait ncessaire.


Au passage, je ne sais pas si l'erreur est juste ici, mais pour ceci : anneSortie
Il vaut mieux ne jamais utiliser de caractres spciaux (genre , espace, etc ...) pour des noms de Bdd, tables, champs, etc ... et mme pour les rpertoires (dossiers), fichiers, etc ...
C'est se mettre des btons dans les roues.
-> annee_sortie serait tout aussi bien (le _ est tout  fait valable)

----------


## EIN-LESER

Personnellement le _ est d'ailleur le seul caractre non alpha numrique que jutilise dans mes BdD.

Ps je parle de caractere non alpha numrique et non de caractres spciaux car je crois me rappeler que l'underscore n'est justement pas considr comme caractre spcial.

----------


## janyoura

Merci  vous deux *EIN-LESER* et *RunCodePhp* je prendrai en compte ce que vous m'avez dis puis je posterai le code rsultat.

----------

