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 :

recupérer des données a partir de mysql [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut recupérer des données a partir de mysql
    Bonjour,
    j'ai créer une base de donné a l'aide de mysql mais j'ai un problème pour récupérer les donnée ! la page php s'affiche toute blanche !

    voila le code de la page :
    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
     
    <?php
     
     
    mysql_connect("localhost", "utilisateur", "mot_de_passe");
    mysql_select_db("nom_db");
     
    $id = $_POST['id'];
     
    $all = mysql_query("SELECT * FROM produit WHERE id = '$id'");
     
    $unique = mysql_fetch_array($all);
     
     
     
    echo $unique['etablissement'];
     
     
    mysql_close ();
     
    ?>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Salut,
    Débugage :

    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
    <?php
     
     
    mysql_connect("localhost", "utilisateur", "mot_de_passe");
    mysql_select_db("nom_db");
     
    var_dump($_POST) ;
    $id = $_POST['id'];
     
    $all = mysql_query("SELECT * FROM produit WHERE id = '$id'");
    echo 'Erreur MySQL : {', mysql_error( ), '}' ;
    var_dump($all) ;
     
    $unique = mysql_fetch_array($all);
    var_dump($unique) ;
     
     
    echo $unique['etablissement'];
     
    mysql_close ();
     
    ?>
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    merci pour ta reponse mais j'ai recu une erreur

    Parse error: syntax error, unexpected T_VARIABLE in C:\Inetpub\vhosts\monsite.com\httpdocs\etablissement\index.php on line 242

    voila la ligne 242
    $unique = mysql_fetch_array($all);

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par hichamdeb Voir le message
    voila la ligne 242
    $unique = mysql_fetch_array($all);
    Je ne vois pas d'erreur dans ce que je t'ai écris. Le pb est sûrement en amont de la ligne 242.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    je suppose que id est NUMERIQUE, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $all = mysql_query("SELECT * FROM produit WHERE id = ".$id);
    Et pour éviter les injections SQL :
    remplacer
    $id = $_POST['id'];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = mysql_real_escape_string ($_POST['id']);

  6. #6
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    j'ai recopié le code et voila ce que sa a donné:

    array(0) { } Erreur MySQL : {}resource(3) of type (mysql result) bool(false)

  7. #7
    Invité
    Invité(e)
    Par défaut
    Redonne ton nouveau code, stp.

  8. #8
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    bonjour jreaux,
    j'ai fait exactement ce que tu m'a dis et voila le resultat

    array(0) { } Erreur MySQL : {You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1}bool(false)
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Inetpub\vhosts\monsite.com\httpdocs\etablissement\index.php on line 238
    NULL

  9. #9
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    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
     
    <?php
     
     
    mysql_connect("localhost", "utilisateur", "mot_de_passe");
    mysql_select_db("db");
     
    var_dump($_POST) ;
    $id = mysql_real_escape_string ($_POST['id']);
     
    $all = mysql_query("SELECT * FROM resto WHERE id = ".$id);
    echo 'Erreur MySQL : {', mysql_error( ), '}' ;
    var_dump($all) ;
     
    $unique = mysql_fetch_array($all);
    var_dump($unique) ;
     
     
    echo $unique['adresse'];
     
    mysql_close ();
    ?>

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Points : 125
    Points
    125
    Par défaut
    Pourrais tu redonner ton nouveau code comme jreaux l'a demandé, ça permettrait de t'aider plus facilement

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Salut jreaux62

    Citation Envoyé par jreaux62 Voir le message
    je suppose que id est NUMERIQUE, donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $all = mysql_query("SELECT * FROM produit WHERE id = ".$id);
    Sous MySQL les ' ne sont pas un pb autour des numériques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT ' 1 ' = 1 ;
    = 1
    Et pour éviter les injections SQL :
    remplacer
    $id = $_POST['id'];
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = mysql_real_escape_string ($_POST['id']);
    Cela n'empêchera pas un injection. A tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_POST['id'] = '123 OR 1 = 1' ;
    $id = mysql_real_escape_string($_POST['id']) ;
    $sql = 'SELECT ALL mesChamps FROM maTable WHERE id = ' . $id ;
    echo $sql ;
    // SELECT ALL mesChamps FROM maTable WHERE id = 123 OR 1 = 1
    // = L'injection passe
    Alors qu'avec les ' :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $_POST['id'] = '123 OR 1 = 1' ;
    $id = mysql_real_escape_string($_POST['id']) ;
    $sql = "SELECT ALL mesChamps FROM maTable WHERE id = '$id' " ;
    echo $sql ;
    // SELECT ALL mesChamps FROM maTable WHERE id = '123 OR 1 = 1'
    // = Pas d'injection
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  12. #12
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    voila le code

    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
    <?php
     
     
    mysql_connect("localhost", "utilisateur", "mot_de_passe");
    mysql_select_db("db");
     
    var_dump($_POST) ;
    $id = mysql_real_escape_string ($_POST['id']);
     
    $all = mysql_query("SELECT * FROM resto WHERE id = ".$id);
    echo 'Erreur MySQL : {', mysql_error( ), '}' ;
    var_dump($all) ;
     
    $unique = mysql_fetch_array($all);
    var_dump($unique) ;
     
     
    echo $unique['adresse'];
     
    mysql_close ();
    ?>
    array(0) { } Erreur MySQL : {You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1}bool(false)
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Inetpub\vhosts\monsite.com\httpdocs\etablissement\index.php on line 25
    NULL

  13. #13
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par hichamdeb Voir le message
    array(0) { } Erreur MySQL...
    $_POST ne contient pas d'élément id = formulaire à revoir.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    je pense qu'on peux simplement ajouter ?id=1 a la fin

    http://www.monsite.com/etablissement/index.php?id=1

  15. #15
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    Dans ce cas il faut passer par $_GET['id']
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  16. #16
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    là, on commence a avancer, mais c'est un peu le bordel

    le resultat est affiché mais le pb c'est qu'il affiché toute l'enregistrement non seulement $unique['adresse']; et biensur avec des erreur mysql



    array(1) { ["id"]=> string(1) "1" } Erreur MySQL : {}resource(2) of type (mysql result) array(14) { [0]=> string(1) "1" ["id"]=> string(1) "1" [1]=> string(11) "anna-paolo2" ["nom_dossier"]=> string(11) "anna-paolo2" [2]=> string(13) "ANNA ET PAOLO" ["nom_etablissement"]=> string(13) "ANNA ET PAOLO" [3]=> string(145) "77, Av. du Prince Héritier. 90 000 Tanger
    Tel. : + 212 (0) 39 94 46 17
    Fax : + 212 (0) 39 94 04 08
    E-mail : paolo@menara.ma " ["adresse"]=> string(145) "77, Av. du Prince Héritier. 90 000 Tanger
    Tel. : + 212 (0) 39 94 46 17
    Fax : + 212 (0) 39 94 04 08
    E-mail : paolo@menara.ma " [4]=> string(6) "Tanger" ["ville"]=> string(6) "Tanger" [5]=> string(657) "Tangerois de naissance, Anna et Paolo ont .......



    voila le code final de la page avec GET

    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
     
     
     
    mysql_connect("localhost", "utilisateur", "mot_de_passe");
    mysql_select_db("db");
     
    var_dump($_GET) ;
    $id = $_GET['id'];
     
    $all = mysql_query("SELECT * FROM resto WHERE id = '$id'");
    echo 'Erreur MySQL : {', mysql_error( ), '}' ;
    var_dump($all) ;
     
    $unique = mysql_fetch_array($all);
    var_dump($unique) ;
     
     
    echo $unique['adresse'];
     
    mysql_close ();

  17. #17
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    le resultat est affiché mais le pb c'est qu'il affiché toute l'enregistrement non seulement $unique['adresse']; et biensur avec des erreur mysql
    OK, donc maintenant que le pb a été identifié et corrigé tu peux virer les var_dump( ) qui ne sont plus d'aucune utilité.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  18. #18
    Membre du Club
    Inscrit en
    Décembre 2007
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    chapeau séb ! merci à vous tous problème réglé

    voila mon code final

    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
     
     
    <?php
     
     
    mysql_connect("localhost", "utilisateur", "mdp");
    mysql_select_db("db");
     
     
    $id = $_GET['id'];
     
    $all = mysql_query("SELECT * FROM resto WHERE id = '$id'");
     
     
    $unique = mysql_fetch_array($all);
     
    echo $unique['adresse'];
     
    mysql_close ();
     
    ?>

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/03/2014, 00h45
  2. Réponses: 1
    Dernier message: 24/10/2011, 09h02
  3. Dessiner des graphiques à partir des données d'une BD MySQL
    Par condor_01 dans le forum Général Java
    Réponses: 6
    Dernier message: 24/04/2008, 09h35
  4. Réponses: 11
    Dernier message: 25/07/2006, 21h46

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