Affichage contenu base de données

Résolu
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013 - 18 juin 2012 à 10:27
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013 - 19 juin 2012 à 14:39
Bonjour,

alors voila, j'ai fait un programme qui me permet de creer une table mysql quelconque avec des champs qu'on notera champ1, champ2 etc ... Je ne connais ni le nombre de champ ni leur nom ni leur taille et j'aimerais faire un script en ¨Php qui afficherait (pas forcement dans un tableau) le contenu de ma table

voila j'espere que vous serez plus inspirer que moi

merci d'avance.

10 réponses

tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013
19 juin 2012 à 14:39
C'est bon j'ai trouvé, si ca interesse quelqu'un un jour voici un code qui permet d'afficher n'importe quelle table sql inconnue dans un tableau html :

mysql_connect('127.0.0.1','root','');
mysql_query("use fichierdemo;");

$res = mysql_query('select * from infofichier');
$nbligne = mysql_num_rows($res);

$nbchamp = mysql_num_fields($res);
echo '<table border="5"><tr bgcolor=#68DECF >';
for($i=0;$i<$nbchamp;$i++){
$nomchamp = mysql_field_name($res,$i);
echo '<th>'.$nomchamp.'</th>';}

for($j=0;$j<$nbligne;$j++){
echo '</tr><tr>';
$liste = mysql_fetch_array($res);
extract($liste);
for($i=0;$i<$nbchamp;$i++){
$nomchamp = mysql_field_name($res,$i);
echo '<td>'.$liste[$nomchamp].'</td>';
}}
echo '</tr>';


Je suis pas encore un informaticien dans l'âme alors mon code est peut être pas super propre mais ca marche
3
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
18 juin 2012 à 18:30
Salut,

Tout ce dont tu as besoin est dans information_schema. Not sure if hacking or re-inventing a very bad PhpMyAdmin...
0
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013
19 juin 2012 à 10:37
Re,

Ca ne m'aide absolument pas. je crois qu'on ne s'est pas compris.

En gros je voudrais faire une page html qui m'affiche une table, qui est inconnue (nombre de colonne, nom des champs etc...) dans un tableau.

Je ne peux donc pas utiliser cette méthode :

 while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td>'.$row["nom"].'</td>';
        echo '<td>'.$row["prenom"].'</td>';
      echo '<td>'.$row["adresse"].'</td>';
        echo '<td>'.$row["cp"].'</td>';
      echo '<td>'.$row["ville"].'</td>';
      echo '</tr>'."\n";
    }
    echo '</table>'."\n";


Car je ne connais pas le nombre de colonnes ni leur des champs (nom, prenom, adresse, cp, ville)

En espérant avoir été plus clair,

merci
0
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013
19 juin 2012 à 10:38
*Car je ne connais pas le nombre de colonnes ni leur nom (nom, prenom, adresse, cp, ville)

En espérant avoir été plus clair,

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
19 juin 2012 à 11:15
Bonjour,

Regarde du coté de mysql_field_len et des autres méthodes mysql.
Je n'est pas regarder, mais je pense que PDO doit avoir un équivalent.

http://www.php.net/manual/fr/function.mysql-field-len.php



Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
19 juin 2012 à 11:20
Bonjour,

Je reprend : c'est mysql_num_fields qu'il faut voir.

http://www.php.net/manual/fr/function.mysql-num-fields.php

mysql_fetch_field <- te donnera les infos du champs
mysql_field_len <- te donnera la taille de la donnée.

Etc...


Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013
19 juin 2012 à 11:28
re,

alors c'est exactement ce que j'ai commencé par faire et ca marche pour les titres des colonnes :

$res = mysql_query('select * from infofichier');
$nbligne = mysql_num_rows($res);

$nbchamp = mysql_num_fields($res);
echo '<table border="5"><tr bgcolor=#68DECF >';

for($i=0;$i<$nbchamp;$i++){
$nomchamp = mysql_field_name($res,$i);
echo '<th>'.$nomchamp.'</th>';
}

echo '</tr><tr>';


Le probleme (sinon c'est pas marrant) c'est que je dois rappeler les noms des colonnes pour afficher leur contenues et la ...
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
19 juin 2012 à 11:46
Bonjour,

Il suffit de "ranger" tes noms dans un array.
$res =  mysql_query('select * from infofichier');
$nbligne = mysql_num_rows($res);

$nbchamp = mysql_num_fields($res);
echo '';

for($i=0;$i<$nbchamp;$i++){
$nomchamp[$i] = mysql_field_name($res,$i);
echo ' '.$nomchamp[$i].'  |';
}

echo '----
';


En dehors de ta boucle, tu as donc $nomchamp qui contient la liste des champ de ta table.$

while($row  = mysql_fetch_array($result)) {
echo '----
';
foreach($nomchamp as $nomlu) {
echo ''.$row[$nomlu].', ';
}
echo ''.\"\n\";
}
    echo '
'."\n";


C'est fait de tête et non tester, mais le principe reste le même.

Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
tieum91 Messages postés 39 Date d'inscription lundi 26 mars 2012 Statut Membre Dernière intervention 8 février 2013
19 juin 2012 à 13:01
re,

alors cela fonctionne mais voila ce que j'optiens :

Nom Prenom Civilite Age
$Nom $Prenom $Civilite $Age
$Nom $Prenom $Civilite $Age
etc ...


pas besoin de dire que ce n'est pas ce que je veux
0
Lyle56 Messages postés 240 Date d'inscription jeudi 1 mai 2008 Statut Membre Dernière intervention 19 juillet 2012 2
19 juin 2012 à 14:34
Ah ben je m'en doutais bien que ça irais pas du premier coup en le faisant de tête ...

Mais déjà ça approche.

$fields=mysql_num_fields($result);

while($row = mysql_fetch_array($result)) {
        echo '<tr>';
          for ($f=0; $f < $fields; $f++) {
              echo "<td>$row[$f]</td>"; 
          }
       echo '</tr>'."\n";
    }
echo '</table>'."\n";


Si tu essaye ça, tu obtient quoi ??

Sans maitrise, la puissance n'est rien
Il ne faut pas vendre la peau de l'ours, non il ne faut pas.
0
Rejoignez-nous