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 :

Affichage des Résultats sur la page web (json)


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Par défaut Affichage des Résultats sur la page web (json)
    Bonsoir à tous.


    J'ai crée une base de données avec php 5.6 et Mysql : 5.7 mon but c'est affiché ma table produit qui se trouve dans ma base de donnée Catégories j'utilise EasyPHP en local.

    Mon fichier Test.php se trouve dans le répertoire www de EasyPHP avec le code suivant :


    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
    <?php
    $bdd_name='Catégories';
    $serveur='localhost';
    $user='root';
    $password='';
    //connexion mysql
    $connexion=mysqli_connect($serveur,$user,$password);
    //verifier la reussite de la connexion
    if(!$connexion)
    print"echec de la connexion";
     
    //selectionner la base de données
    $resultat=mysqli_select_db($connexion,$bdd_name);
    if(!$resultat)
                   {
                     print"echec de la selection";
                      return;
                    }
     
     
    $sth = mysqli_query($resultat,"SELECT * from Produits");
    $rows = array();
    while($r = mysqli_fetch_array($sth, MYSQLi_ASSOC)) {
      $rows []= $r ;
    }
    mysqli_free_result($sth);
    print_r(json_encode($rows));
    ?>

    La connexion à la base se passe bien, mais mon véritable problème au niveau de l'aperçu il y 'a toujours une erreur sur la ligne SELECT Produits.

    Malgré les modifications au départ qui été mysql_ donc j'ai transformé en mysqli_

    Voilà l'erreur en question :

    Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\Catégories\Test.php on line 21


    Je prie toute personne de bonne volonté de bien vouloir m'arranger mon code je me retrouve vraiment bloquer.


    Merci

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Ce n'est pas $resultat mais $connexion que tu dois passer à mysqli_query()
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Evite d'utiliser les accents dans le nom de la base ou des tables

    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
     
    $bdd_name='Catégories';
    $serveur='localhost';
    $user='root';
    $password='';
    $connexion = new mysqli($serveur, $user, $password, $bdd_name);
    if ($connexion->connect_errno) print"echec de la connexion";
    $sql = "SELECT * from Produits";
    $res = $connexion->query($sql);
    if ($res->num_rows > 0) {
        while($row = $res->fetch_assoc()) {
            var_dump ($row);
        }
    }
    $connexion->close();

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Par défaut
    Citation Envoyé par ma5t3r Voir le message
    Evite d'utiliser les accents dans le nom de la base ou des tables
    j'ai modifié dans la base comme vous m'avez proposé : Catégories en 'Categories' Mais le résultat ne change toujours pas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Par défaut
    Citation Envoyé par grunk Voir le message
    Ce n'est pas $resultat mais $connexion que tu dois passer à mysqli_query()

    Merci pour votre prompt réaction mais lorsque je remplace comme vous m'avez proposé :

    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
    $bdd_name='Catégories';
    $serveur='localhost';
    $user='root';
    $password='';
    //connexion mysql
    $connexion=mysqli_connect($serveur,$user,$password);
    //verifier la reussite de la connexion
    if(!$connexion)
    print"echec de la connexion";
     
    //selectionner la base de données
    $resultat=mysqli_select_db($connexion,$bdd_name);
    if(!$resultat)
                   {
                     print"echec de la selection";
                      return;
                    }
     
     
    $sth = mysqli_query($connexion,"SELECT * from Produits");
    $rows = array();
    while($r = mysqli_fetch_array($sth, MYSQLi_ASSOC)) {
      $rows []= $r ;
    }
    mysqli_free_result($sth);
    print_r(json_encode($rows));
    ?>

    J'ai une autre erreur qui s'affiche :

    Notice: Use of undefined constant MYSQLi_ASSOC - assumed 'MYSQLi_ASSOC' in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\cafPos\produits2.php on line 23

    Warning: mysqli_fetch_array() expects parameter 2 to be long, string given in C:\Program Files (x86)\EasyPHP-Devserver-16.1\eds-www\cafPos\produits2.php on line 23
    []
    ---------------------------------------------------

    La ligne 23 en question chez moi c'est :

    while($r = mysqli_fetch_array($sth, MYSQLi_ASSOC)) {

  6. #6
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Je t'ai donné la solution
    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
     
    $bdd_name='Catégories';
    $serveur='localhost';
    $user='root';
    $password='';
    $connexion = new mysqli($serveur, $user, $password, $bdd_name);
    if ($connexion->connect_errno) print"echec de la connexion";
    $sql = "SELECT * from Produits";
    $res = $connexion->query($sql);
    $rows = array();
    if ($res->num_rows > 0) {
        while($row = $res->fetch_assoc()) {
            $rows[] = $row;
        }
    }
    var_dump ($rows);
    $connexion->close();

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2020
    Messages : 5
    Par défaut
    Citation Envoyé par ma5t3r Voir le message
    Je t'ai donné la solution



    Merci mais il y' a toujours un problème meme lorsque j'essaie votre modification le résultat est sous la forme brute.

    Voilà le résultat :
    array(12) { [0]=> array(9) { ["id"]=> string(11) "P1-10031135" ["barcode"]=> string(8) "33333333" ["Description"]=> string(9) "Livre" ["Photo"]=> string(15764) "�PNG  IHDRr��+8YsRGB���gAMA�� �a pHYs���o�d=)IDATx^��x#��>l:!����^�M%! ��@!$B ��^B
    alors que je m'attendais à l'affichage :

    [
    {
    "id":"P1-1003",
    "Description":"Livre",
    "Photo" null,
    }
    {
    "id":"P1-1123",
    "Description":"Cahier",
    "Photo" null,
    }
    Ainsi de suite pour toute la base.

    j'aimerais utilisé plutot la méthode Json avec les fonction ci-après inclut qui demande une certaine modification :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	$sth = mysqli_query("SELECT * from Produits");
    $rows = array();
    while($r = mysqli_fetch_array($sth, MYSQLi_ASSOC)) {
      $rows []= $r ;
    }
    mysqli_free_result($sth);
    print_r(json_encode($rows));
    Donc il y' a certainement une modification à faire au niveau des lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $sth = mysqli_query("SELECT * from Produits");
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($r = mysqli_fetch_array($sth, MYSQLi_ASSOC)) {


    Merci pour votre compréhension

  8. #8
    Membre chevronné Avatar de ma5t3r
    Homme Profil pro
    Développeur freelance
    Inscrit en
    Mai 2015
    Messages
    320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Mai 2015
    Messages : 320
    Par défaut
    Ta colonne Photo stocke une image PNG.
    Je ne sais pas sous quel format tu la stockes, sûrement un BLOB.

Discussions similaires

  1. [AJAX] Avoir des infos sur une page web
    Par Skieur38 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/03/2007, 21h38
  2. Des maths sur une page web
    Par Invité dans le forum Autres langages pour le Web
    Réponses: 2
    Dernier message: 18/11/2006, 20h37
  3. Obtenir des infos sur une page web en ligne
    Par Logan_Cale dans le forum Web & réseau
    Réponses: 1
    Dernier message: 20/08/2005, 15h36

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