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 :

Afficher le contenu d'une table sqlite


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut Afficher le contenu d'une table sqlite
    Bonjour
    je débute en base de données sqlite et en encore plus en php...

    je me suis créé une base de demo et j'obtiens ces résultats dans une console (sous Linux)
    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
    $ sqlite3 demo.sqlite 
    SQLite version 3.8.2 2013-12-06 14:53:30
    Enter ".help" for instructions
    Enter SQL statements terminated with a ";"
    sqlite> .mode column
    sqlite> .header on
    sqlite> .width 15,15
    sqlite> select * from animaux order by cat,nom;
    CAT              NOM       
    ---------------  ----------
    mammifère       Loup      
    mammifère       Mouton    
    mammifère       Tigre     
    oiseau           Hirondelle
    oiseau           Pie       
    poisson          Carpe     
    poisson          Truite    
    sqlite>
    j'ai un peu regardé pour coder en php et j'arrive a afficher quelque chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $db = new SQLite3('demo.sqlite');
    $result = $db->query('SELECT * FROM animaux');
    var_dump($result->fetchArray());
    ?>
    et le résultat très laid... :

    array(4) { [0]=> string(10) "mammifère" ["CAT"]=> string(10) "mammifère" [1]=> string(5) "Tigre" ["NOM"]=> string(5) "Tigre" }
    Question : comment afficher cela sous forme de tableau et mettre les infos dans un tableau html (style <table><th>cat</th> [..] <td>value</td></table>

    merci de votre aide

    Bien cordialement

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suis un peu surpris que tu recupères deux resultas d'un coup mais bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    echo '<table>';
    $result = $db->query('SELECT * FROM animaux');
    while ($result->fetchArray(SQLITE3_ASSOC )) {
           echo '<tr><td>' . $row['CAT'] . '</td><td>' . $row['NOM'] . '</td></tr>';
    }
    echo '</table>';

  3. #3
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonsoir et merci de la réponse.

    oui bizarre ce que ça affiche. (peut-être ma table n'est-elle pas bonne ? = > je la mets en pièce jointe)

    en mettant ton code ça n'affiche rien voilà le code généré : rien entre les <td></td>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <table><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr></table>
    sinon voila la page html, j'ai peut-être mal codé une ligne
    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
    <html>
     <body>
     <h2>Lecture base sqlite demo</h2>
     
    <?php
    $db = new SQLite3('demo.sqlite');
    $result = $db->query('SELECT * FROM animaux');
    var_dump($result->fetchArray());
    ?>
     
    <hr>
     <?php
    echo '<table>';
    $result = $db->query('SELECT * FROM animaux');
    while ($result->fetchArray(SQLITE3_ASSOC )) {
           echo '<tr><td>' . $row['CAT'] . '</td><td>' . $row['NOM'] . '</td></tr>';
    }
    echo '</table>';
    ?>
    <p> fin de page</p> 
     
    </body>
    </html>
    Bien cordialement
    Fichiers attachés Fichiers attachés

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    oups
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = $result->fetchArray(SQLITE3_ASSOC )) {
           echo '<tr><td>' . $row['CAT'] . '</td><td>' . $row['NOM'] . '</td></tr>';
    }

  5. #5
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonsoir

    parfait et je te remercie.
    voila ce que ça donne : (j'ai un peu modifié pour trier )
    Nom : sqlite_demo1.png
Affichages : 4494
Taille : 9,0 Ko
    J'aurai d'autres questions mais ce sera dans un autre billet.
    Bien cordialement et encore merci !

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je suis un peu surpris que tu recupères deux resultas d'un coup
    Non, il ne récupère, comme attendu, que la première ligne sous forme de tableau associatif et indexé conformément à ce que dit la doc
    Citation Envoyé par SQLite3Result::fetchArray
    Récupère un jeu de résultats sous la forme d'un tableau associatif ou indexé numériquement, ou les deux. Par défaut, ce sera les deux.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est le 4 qui m'avait surpris mais j'avais pas fait attention qu'il y avait 2 colonnes.

  8. #8
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonjour,

    Merci pour toutes ces précisions - même si pour l'instant ça ne me parle pas de trop -

    Sinon pour passer plusieurs parametres en commande sql j'ai procédé ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $code='SELECT * FROM animaux  ';
    $code=$code . ' order by CAT,NOM ;';
    $result = $db->query($code);
    vous pensez que c'est un bonne solution ?


    à terme par un formulaire je passerai des paramètres d’interrogation (je suppose que c'est possible) mais je n'en suis pas encore là.

    Bien à vous

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ils sont ou les paramètres ?

  10. #10
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Re

    c'était juste une réflexion.

    je pense récupérer les valeurs d'un formulaire (éventuellement les vérifier en Javascript) et les passer en argument à PHP
    en clair &code récupérera les valeurs du formulaire bouttons radio, input, etc...

    pour simplifier j'ai fait un exemple basic qui marche :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <form method="post" action="verif.php">
    nom animal  ? : <input type="text" name="nom" size="12"><br>
    <input type="submit" value="OK">

    et dans verif.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $nom = $_POST['nom'];
    echo '<table border="1">';
    $db = new SQLite3('demo.sqlite');
    $code='SELECT * FROM animaux  ';
    $code=$code . ' where NOM = ';
    $code=$code .  ' \''.$nom.'\' ; ' ;
     
    $result = $db->query($code);
    etc..
    Bien à toi

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut utiliser une requête préparée, sinon tu ouvres la porte aux injections SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = $db->prepare('SELECT * FROM animaux WHERE NOM = :nom');
    $stmt->bindValue(':nom', $_POST['nom'], SQLITE3_TEXT);
    $result = $stmt->execute();

  12. #12
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Heu, je crois que ne n'ai pas tout compris...
    quel est le risque ?
    les injections SQL c'est à dire ?
    une requête séparée ?

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155

  14. #14
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Bonsoir et merci pour la lecture mais il faut déjà comprendre un peu mieux le PHP qu'au niveau débutant (le mien), mais très intéressant

    Sinon, codé comme cela, est-ce "sécurisé" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $db = new SQLite3('demo.sqlite');
    $stmt = $db->prepare('SELECT * FROM animaux WHERE NOM = :nom');
    $stmt->bindValue(':nom', $_POST['nom'], SQLITE3_TEXT);
    $result = $stmt->execute();
    echo '<table border="1">';
    while ($row = $result->fetchArray(SQLITE3_ASSOC )) {
           echo '<tr><td>' . $row['CAT'] . '</td><td>' . $row['NOM'] . '</td></tr>';
    }
    echo '</table>';
    ?>
    Cordialement

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si les données dans la table peuvent être douteuses, tu peux ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = $result->fetchArray(SQLITE3_ASSOC )) {
           echo '<tr><td>' . htmlspecialchars($row['CAT']) . '</td><td>' . htmlspecialchars($row['NOM']) . '</td></tr>';
    }

  16. #16
    Membre averti
    Avatar de joreveur
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2010
    Messages : 293
    Points : 365
    Points
    365
    Par défaut
    Merci c'est noté
    Je clos ce premier billet.
    Encore merci à toi pour tes réponses
    Cordialement

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

Discussions similaires

  1. [MySQL] Afficher le contenu d'une table MYSQL selon un critère bien défini
    Par Webnadou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/09/2007, 21h38
  2. [Prototype] Afficher le contenu d'une table MySQL
    Par Claire.Heitz dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 22/08/2007, 00h10
  3. afficher le contenue d'une table
    Par sasaas dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/05/2007, 16h20
  4. Réponses: 1
    Dernier message: 29/04/2007, 19h53
  5. Réponses: 18
    Dernier message: 12/06/2006, 09h39

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