IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

PHP Print table à partir de MySQL DB [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut PHP Print table à partir de MySQL DB
    Bonjour, je suis un débutant avec php et mysql, toutefois j'aimerais savoir si ceertaines choses sont possibles de faire. Avant tout, je vous souhaites bonne chance et merci à tout ceux qui trouveront la solution en l'expliquant à un débutant comme moi si ne sait même pas encore la syntaxe complète (donc veuillez ne pas me dire quoi faire seulement, donner moi un exemple ou je pourrai coller le code et donc comprendre). Merci

    J'ai une base de donnée dans mysql appelé lst1 et une table appelée paddlers dans cette base de donnée. Afin d'imprimer toutes les colonnes et les rangées de cette table, j'utilise le code ci-joint qui fonctionnne très bien dans la page 1.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <? 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("lst1"); 
    $result = mysql_query("SELECT * FROM paddlers"); 
    ?> 
    <table border="1" cellpadding="0" cellspacing="0"> 
      <tr> 
        <th>ID</th> 
        <th>Paddle No</th> 
        <th>L/R</th> 
        <th>First Name</th> 
        <th>Last Name</th> 
        <th>Age</th> 
        <th>Team</th> 
        <th># Home</th> 
        <th># Cell</th> 
        <th>Email</th> 
        <th>Login</th> 
        <th>Password</th> 
        <th>Practice Attendance</th> 
      </tr> 
     
    <? 
    while ($row = mysql_fetch_array($result)) { 
        echo "<tr>"; 
        echo "<td>" . $row['id'] . "</td>"; 
        echo "<td>" . $row['no'] . "</td>"; 
        echo "<td>" . $row['side'] . "</td>"; 
        echo "<td>" . $row['firstname'] . "</td>"; 
        echo "<td>" . $row['lastname'] . "</td>"; 
        echo "<td>" . $row['age'] . "</td>"; 
        echo "<td>" . $row['team'] . "</td>"; 
        echo "<td>" . $row['phonehome'] . "</td>"; 
        echo "<td>" . $row['phonecell'] . "</td>"; 
        echo "<td>" . $row['email'] . "</td>"; 
        echo "<td>" . $row['login'] . "</td>"; 
        echo "<td>" . $row['password'] . "</td>"; 
        echo "<td>" . $row['practiceattendance'] . "</td>"; 
        echo "</tr>"; 
    } 
    mysql_free_result($result); 
    mysql_close(); 
    ?> 
     
    </table>
    Sauf que voilà le problème. Maintenant, j'ai une page appelée 2.php qui une fois le form post, ca crée automatiquement une colonne dans la table lst1 (avec fonction Alter). En fait, ca crée bcp de colonnes, pas juste 1.

    La question est: comment puis-je faire pour que la page 1.php print aussi AUTOMATIQUEMENT les colonnes crées sans que je dois écrire manuellement dans 1.php, pour chaque colonne crée, les [QUOTE]<th>Nouvelle colonne crée</th> <? echo "<td>" . $row['nouvelle colonne crée'] . "</td>"; ?> ???[/QUOTE]

    Est-ce cela possible?

    J'ai pensé à 2 solutions. De 1, avec la fonction php if (variable avec query de sql select le nom de la colonne exist et non null), print la colonne. Est-ce une bonne idée? Si ca marche, c'est cool, mais je n'ai aucune idée comment écrire ca en syntaxe de php, pouvez vous l'écrire?

    2e solution, c'est existe t-il une commande pour tout print le database dans un tableau en un code simple?

    En fait, toutes mes nouvelles colonnes crées commencent par 2008-0x-xx xxxx. C tu possible d'avoir un php code qui print toutes les colonnes qui commencent par 2008- ? si oui comment l'écrire en syntaxe php?

    D'autres solutions? Écrivez ici!!! ça va m'aider beaucoup!!!! Ca fait 1 semaine que je ne dors presque pas juste pour essayer de trouver la solution

  2. #2
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Il existe une solution en php :
    http://fr3.php.net/manual/fr/function.mysql-field-name.php. La fonction mysql_field_table retourne le nom d'une colonne dans un résultat MySQL.
    Si tu fais un :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    $res = mysql_query(SELECT * FROM maTable);
    Tu peux faire ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_field_name($res, 0)
    qui te renverra le nom de la première colonne...

    Sinon en SQL : http://dev.mysql.com/doc/refman/5.0/...w-columns.html plus adapté selon moi...

    Bonne continuation
    Bonsoir...

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Mercii ca fonctionne bien!! juste pour le sql, show columns... ca ne marche pas.. bref je sais pas comment mettre ce code en php. mais pour la premiere solution voici ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <table border="1" cellpadding="0" cellspacing="0">
     
    <? 
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("lst1"); 
    $result = mysql_query("SELECT * FROM paddlers"); 
     
    echo "<tr>";
     
    for ($i = 1; $i < 2; ++$i) {
        $field = mysql_field_name($result, $i);
    	if($field == 'no') {$field = "No Paddler";}
        echo  "<th>" .$field. "</th>";
    }
    for ($i = 3; $i < 4; ++$i) {
        $field = mysql_field_name($result, $i);
    	if($field == 'firstname') {$field = "First Name";}
        echo  "<th>" .$field. "</th>";
    }
    for ($i = 4; $i < 5; ++$i) {
        $field = mysql_field_name($result, $i);
    	if($field == 'lastname') {$field = "Last Name";}
        echo  "<th>" .$field. "</th>";
    }
    for ($i = 12; $i < mysql_num_fields($result); ++$i) {
        $field = mysql_field_name($result, $i);
    	if($field == 'practiceattendance') {$field = "Practice Attendance";}
        echo  "<th>" .$field. "</th>";
    }
     
    echo "</tr>";
     
     
    while ($row = mysql_fetch_array($result)) { 
    echo "<tr>"; 
    for ($i = 1; $i < 2; ++$i) {
        $field = mysql_field_name($result, $i);
        echo "<td>" .$row[$field]. "</td>";
    } 
    for ($i = 3; $i < 4; ++$i) {
        $field = mysql_field_name($result, $i);
        echo "<td>" .$row[$field]. "</td>";
    } 
    for ($i = 4; $i < 5; ++$i) {
        $field = mysql_field_name($result, $i);
        echo "<td>" .$row[$field]. "</td>";
    } 
    for ($i = 12; $i < mysql_num_fields($result); ++$i) {
        $field = mysql_field_name($result, $i);
        echo "<td>" .$row[$field]. "</td>";
    } 
     
    echo "</tr>"; 
    } 
    mysql_free_result($result); 
     
    mysql_close(); 
     
    ?> 
    </table>
    Bon je ne sais pas comment écrire plusieurs valeurs avec $i, je suis pas assez top level pour ca. Merci, t un pro!

  4. #4
    Membre régulier Avatar de guigouz
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 84
    Points : 102
    Points
    102
    Par défaut
    Voici un exemple d'utilisation du "SHOW COLUMNS"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <table border="1" cellpadding="0" cellspacing="0">
    <? 
        mysql_connect("localhost", "root", ""); 
        mysql_select_db("lst1"); 
     
        /* Pour les noms des colonnes */
        $result = mysql_query("SHOW COLUMNS FROM paddlers"); 
        echo "<tr>";
        while ($row = mysql_fetch_array($result))
        {
            echo '<th>'.$row['Field'].'</th>';
        }
        echo "</tr>";
     
        /* Pour les données */
        $result = mysql_query("SELECT * FROM paddlers");
        while ($row = mysql_fetch_array($result))
        {
            echo '<tr>';
                echo '<td>'.$row[0].'</td>';
                echo '<td>'.$row[1].'</td>';
                echo '<td>'.$row[2].'</td>';
                ....
            echo '</tr>';
        }
        mysql_close(); 
    ?> 
    </table>
    Si ton post est résolu pense au tag "Résolu"...
    Bonne continuation, bonsoir...

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    oui là ça marche!! je ne sais comment te remercier!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] outil de construction de class php à partir de MYSQL
    Par Ontolingua dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 16/03/2009, 13h24
  2. [MySQL] Mysql/php graph a partir BDD
    Par yanick dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/02/2009, 04h24
  3. [MySQL] Importer formule PHP à partir de MySQL
    Par rico the hobbit dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/08/2007, 16h45
  4. [mysql - php] plusieurs tables pour un select ORDER BY
    Par sanosuke85 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/12/2005, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo