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 :

Récupération de données en PHP sur access [ODBC]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut Récupération de données en PHP sur access
    Bonjour,

    je souhaiterais récupérer des infos d'une base access pour l'afficher sur une page web mais tout ce que j'obtiens c'est une page blanche.
    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $db = 'F:\test\database\database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "SELECT * SET FROM BASE WHERE ID='$ID'";
    $res = $conn->Execute($sql);
     
    while (!$res->EOF) {
     $Q1=$res->Fields['Q1']->value;
     $res->MoveNext();
     }
    Quelqu'un à une idée ?

    Meri par avance

    Frogs

  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
    Par défaut
    Essaie d'utiliser la methode de la faq :

    http://php.developpez.com/faq/?page=odbc#odbc-sans-dsn
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $db = 'F:\test\database\database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "SELECT * FROM BASE WHERE ID='$ID'";
    $res = odbc_exec($conn, $sql);
    $Q1= odbc_result($res,"Q1");
    puis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $db = 'F:\test\database\database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "SELECT * FROM BASE WHERE ID='$ID'";
    $res = odbc_exec($conn, $sql);
    while (odbc_fetch_row( $res ) ) {
     $Q1= odbc_result($res,"Q1");
      $res->MoveNext();
    }

    ....marche pas.
    Y'a-t-il une erreur dans mon script ?

  4. #4
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Perso je n'y connais rien aux ActiveX avec php.
    Mais ta notation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = 'F:\test\database\database.mdb';
    m'interpelle.
    Essaie d'utiliser une notation linux c'est a dire avec des '/' (c'est ce que je fais) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = 'F:/test/database/database.mdb';

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    Merci pour ta réponse fregolo52 mais c'est pas au niveau de la connexion que j'ai des soucis mais au niveau de la récupération de données et son affichage.

    Sabotage, merci pour la faq mais cela ne change rien, il ne m'afiche pas mes données.

    Si quelqu'un à une autre idée ou une envie de me dire que je ne suis pas doué, qu'il n'hésite pas, merci.

  6. #6
    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
    Par défaut
    Tu pourrais nous mettre ton code reprenant l'exemple de la faq et on placera des points de controle pour voir ou ca ne va pas.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    euh... le voilà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $ID = isset($_GET['ID'])?$_GET['ID']:"";
    $PASS = isset($_GET['PASS'])?$_GET['PASS']:"";
    $cheminDeMaBase = 'F:/test/database/database.mdb';
    $connectionString = sprintf("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=%s", $cheminDeMaBase);
    $cnx = odbc_connect($connectionString);
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID='$ID'";);
     
    while(odbc_fetch_row($ressource))
    {
       $Q1= odbc_result($ressource, 'Q1');
    }
    odbc_close($cnx);
    Dans ma base, j'ai bien une valeur pour Q1.

    Merci pour ton aide.

    frogs

  8. #8
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    Et en mettant l'id en tant qu'integer dans la requête ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $ID = isset($_GET['ID'])?$_GET['ID']:"";
    $PASS = isset($_GET['PASS'])?$_GET['PASS']:"";
    $cheminDeMaBase = 'F:/test/database/database.mdb';
    $connectionString = sprintf("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=%s", $cheminDeMaBase);
    $cnx = odbc_connect($connectionString);
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID=".$ID;);
     
    while(odbc_fetch_row($ressource))
    {
       $Q1= odbc_result($ressource, 'Q1');
    }
    odbc_close($cnx);

  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
    Par défaut
    fézon un peu de debug :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID=".$ID;) or die(odbc_error());
     var_dump($ressource);
    while(odbc_fetch_row($ressource))
    {
      echo 'dans le while ';
       $Q1= odbc_result($ressource, 'Q1');
    echo $Q1 . '<br>';
    }
    odbc_close($cnx);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    euh.....
    page blanche !!!???

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    J'ai essayé avec ca :
    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
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID='$ID'";) or die(odbc_error());
     var_dump($ressource);
    while(odbc_fetch_row($ressource))
    {
       $Q1= odbc_result($ressource, 'Q1');
    }
    odbc_close($cnx);
     
     
    ?>
    <html>
    <body>
    ID : <?echo $ID;?>
    PASS : <?echo $PASS;?>
    Q1 : <?echo $Q1;?>
    </body>
    </html>
    pas de changement, page blanche

  12. #12
    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
    Par défaut
    affinons :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo 'avant';
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID='$ID'";) or die('*' . odbc_error() . '*');
    echo 'apres';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour frogs,

    Tu appelles bien la fonction odbc_connect() avant d'écrire ces tests ?

    lorsque sabotage te demande de faire ces tests, il inclue implicitement, bien sûr, le fait d'appeler les fonctions de connexion à l'odbc.
    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
     
    $ID ='L\'identifiant';
    $PASS = 'Le mot de passe';
    $cheminDeMaBase = 'F:/test/database/database.mdb';
    $connectionString = sprintf("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=%s", $cheminDeMaBase);
    $cnx = odbc_connect($connectionString);
     
     
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID='$ID'";) or die(odbc_error());
     var_dump($ressource);
    while(odbc_fetch_row($ressource))
    {
       $Q1= odbc_result($ressource, 'Q1');
    }
    odbc_close($cnx);
     
     
    ?>
    <html>
    <body>
    ID : <?echo $ID;?>
    PASS : <?echo $PASS;?>
    Q1 : <?echo $Q1;?>
    </body>
    </html>

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    Récapitulons:

    voici le code complet que j'utilise :
    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
    <?php
    $ID = isset($_GET['ID'])?$_GET['ID']:"";
    $PASS = isset($_GET['PASS'])?$_GET['PASS']:"";
     
    $cheminDeMaBase = 'F:/test/database/database.mdb';
     
    $connectionString = sprintf("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=%s", $cheminDeMaBase);
     
    $cnx = odbc_connect($connectionString);
     
    echo 'avant';
    $ressource = odbc_exec($cnx,  "SELECT * FROM BASE WHERE ID='$ID'";) or die('*' . odbc_error() . '*');
    echo 'apres';
     
     var_dump($ressource);
    while(odbc_fetch_row($ressource))
    {
       $Q1= odbc_result($ressource, 'Q1');
    }
    odbc_close($cnx);
     
     
    ?>
    <html>
    <body>
    ID : <?echo $ID;?><br>
    PASS : <?echo $PASS;?><br>
    Q1 : <?echo $Q1;?>
    </body>
    </html>
    Si je masque la partie après le
    j'obtiens l'affichage : Avant ID:identifiant,Pass: password, Q1 : 'vide'

    Dès que je la démasque, page blanche.


    c'est à se taper la tête contre les murs

    merci beaucoup pour votre aide

  15. #15
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Et si tu fais un var_dump($cnx); ca donne quoi ?

  16. #16
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    J'obtiens "NULL"

    Je viens de faire un test avec un autre code que j'avais auparavant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $db = 'F:/test/database/database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "SELECT * FROM BASE WHERE ID='$ID'";
    $res = $conn->Execute($sql);
    var_dump($conn);
    et j'obtiens "object(com)#1 (0) { }"

  17. #17
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    Petite précision,

    si je fais un UPDATE avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $db = 'F:/test/database/database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "UPDATE BASE SET date_enreg = '$date_enreg' WHERE ID='$ID'";
    $res = $conn->Execute($sql);
    Cela fonctionne

  18. #18
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 109
    Par défaut
    J'ai trouvé, je vous donne mon code et encore merci à tous ceux qui m'ont aidés
    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
     
    <?php
    $ID = isset($_GET['ID'])?$_GET['ID']:"";
    $PASS = isset($_GET['PASS'])?$_GET['PASS']:"";
     
    $db = 'F:/test/database/database.mdb';
    $conn = new COM('ADODB.Connection');
    $conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");
    $sql = "SELECT * FROM BASE WHERE ID='$ID'";
    $res = $conn->Execute($sql);
     
    if ($res->EOF) {
    	header("Location: ./err.php");
    }
    else {	
    	while (!$res->EOF) {
              	$Q1=$res->Fields['Q1']->value;
    		$res->MoveNext();
    	}
    }
     
    $res->Close(); 
    $conn->Close(); 
    $res = null; 
    $conn = null;
    ?>
    voili voilou

    frogs

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

Discussions similaires

  1. Récupération des données d'une base access sur réseau
    Par fishingman dans le forum VB.NET
    Réponses: 3
    Dernier message: 24/06/2011, 09h13
  2. Réponses: 0
    Dernier message: 24/11/2008, 16h58
  3. [AJAX] Récupération de données AJAX -> PHP
    Par TheBuzz dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/06/2008, 18h31
  4. [Tableaux] Récupération de données en PHP
    Par Edukam dans le forum Langage
    Réponses: 4
    Dernier message: 20/02/2008, 18h39
  5. Récupération de données d'une base access
    Par ologele dans le forum VB 6 et antérieur
    Réponses: 39
    Dernier message: 05/08/2006, 13h37

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