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 :

Requête sur une table


Sujet :

PHP & Base de données

  1. #21
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    Bonjour
    le debug me donne ça
    SQL: [49]
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date_nais, adr FROM adherents_aca LIMIT 10 Params: 1 Key: Name: [8] :licence paramno=-1 name=[8] ":licence" is_param=1 param_type=2

  2. #22
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    euh juste a tout haasrd un echo + (variable x) ne pourrait pas faire l'affaire au lieu du print

  3. #23
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    encore une petite idee qui trottine
    je suis sous wamp vers 2.5 et il semblerait que quelque fois il n'accede pas a nos projets (lu ça et là)

  4. #24
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut andre260.

    Les points à vérifier.

    1) es-tu certain que ta base de données est bien 'test' ?

    2) es-tu certain de ne pas t'être trompé de table ?

    3) le nom de tes colonnes est forcé en minuscule. Dans le php, il faut les écrire en minuscule.
    Es-tu certain de l'orthographe de tes colonnes ?

    4) tu as repris le même exemple. Es-tu certain que ta base de données est en latin1 ?
    Ne serait-ce pas plutôt de l'utf8 ?

    5) tu fais un passage de paramètre par : $_POST['numlicence']
    As-tu vérifié que tu passes bien quelque chose ?
    Et ce quelque chose est bien ce que tu attends comme valeur ?

    6) as-tu vérifié le compte-rendu de ta requête dans le fichier log ?

    7) est-ce que le pdo est bien activé sous wamp ?
    --> icône wampserver / php / extension php / php_pdo_mysql
    La ligne doit être coché.

    J'ai plus d'idées pour t'aider.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #25
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    bonsoir
    je reponds a artemus bien que ne voyant pas encore son message
    ma base de données sous wamp est bien test (elle est dans le repertoire ; c:\wamp\www\test\test1\)
    ma table est adherents_aca (minuscule)
    le nom des colonnes est en minuscule voila une requete
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    `num_lic`, `id`, `date_nais`, `mail`, `tel`, `adr`SELECT * FROM `adherents_aca` WHERE 1
    alors oui j'etais en utf8 j'ai tout remis en latin1
    j'ai repris le meme exemple
    seul le champ du formulaire est nommé : numlicence donc j'ai modifié $sel->bindParam('licence', $_POST['numlicence']);.
    php.pdo.mysql est bien coche dans wamp
    ou puis je trouver le fichier log (j'ai fait une recherche via (totalcommander) il ne trouve rien
    alors l'idee m'est venue de changer de table (infos_club) ou on retrouve une partie des memes champs
    le resultat est le meme, je ressaye plus tard avec les valeurs changées
    merci je vous tiens informé
    bon dimanche

  6. #26
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    une info oubliée
    Serveur: mysql wampserver »Base de données: test »Table: adherents_aca

  7. #27
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut andre260.

    Citation Envoyé par andre260
    je réponds à artemus bien que ne voyant pas encore son message.
    Si tu réponds à mon message (post #24), c'est que tu le voies ce message.
    Donc j'ai pas compris ce que tu veux dire.

    Citation Envoyé par andre260
    ma base de données sous wamp est bien test (elle est dans le repertoire ; c:\wamp\www\test\test1\)
    D'accord. Ta base de données est bien 'test'.

    Non, la base physique n'est pas dans "c:\wamp\www\test\test1\".
    Ta base de données physique est dans "c:\wamp\bin\mysql\mysql5.6.zz\data\test".

    Ce dont tu me parles, je suppose qu'il s'agisse du script php.
    Normalement, le répertoire "/www" est réservé à "localhost".
    Si tu veux créer un site, il faut le mettre dans un autre répertoire, pas nécessairement dans "c:/wamp".
    De plus, tu dois utiliser les virtualhosts.

    Citation Envoyé par andre260
    alors oui j'étais en utf8 j'ai tout remis en latin1
    Et tu as fais comment pour convertir ta base de utf8 en latin1 ?

    1) Voici un exemple de ce que tu dois déclarer pour une base de données et une table :
    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
    SET AUTOCOMMIT = 0;
    START TRANSACTION;
     
    -- ======================
    -- Base de Données `base`
    -- ======================
     
    DROP DATABASE IF EXISTS `base`;
     
    CREATE DATABASE `base`
    	DEFAULT CHARACTER SET `latin1`
    	DEFAULT COLLATE       `latin1_general_ci`;
     
    USE `base`;
     
    -- ================
    -- Table `etudiant`
    -- ================
     
    DROP TABLE IF EXISTS `etudiant`;
     
    CREATE TABLE `etudiant`
    (
      `id`     integer unsigned NOT NULL AUTO_INCREMENT primary key,
      `email`  char(255)     NOT NULL,
      unique index `idx1` (`email`)
    ) ENGINE=InnoDB
      DEFAULT CHARSET=`latin1` COLLATE=`latin1_general_ci`
      ROW_FORMAT=COMPRESSED;
    Quand je manipule MySql, je le fais toujours en mode transactionnel.

    2) le script qui contient la déclarative de la base et des tables doit être aussi en latin1.
    Pour cela, utiliser notepad++ et convertir le contenu du script en ANSI, ou en win1252.
    Je ne me casse pas trop la tête, pour mes tests, j'utilise ANSI.

    3) si la base et les tables sont en latin1 et si le script est stocké en ANSI, tu dois aussi mettre "set names latin1".

    Citation Envoyé par andre260
    ou puis je trouver le fichier log (j'ai fait une recherche via (totalcommander) il ne trouve rien
    4) Tu trouves ce fichier log, en faisant :
    --> icône wampserver
    --> php
    --> php error.log

    Supprimes tout ce qui est dedans. Et refais un test de ton script.
    Si un message d'anomalie apparait, tu me le donnes.

    5) Sebwar t'a conseillé de faire un test simple, que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date_nais, adr FROM adherents_aca LIMIT 10
    sans utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel->debugDumpParams();
    juste pour savoir si tu obtiens des résultats.
    Tu mets aussi en commentaire le "bindparam".

    Si tu n'as aucun message d'erreurs, ni aucun résultat, c'est que ta table est vide.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #28
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    Bonjour Artemus
    Merci de ta reponse
    alors je recois par mail l'avis de ta reponse, lorsque je vais sur l'interfaca developpez.net je ne vois pas ta reponse(normal >> donc F5 actualisez rien)
    je ferme l'ordi redemarre toujours rien (les bizareries informatiques), je reponds apres envoi , bing ta reponse apparait, ceci dit pas grave
    dans : c:\wamp\bin\mysql\mysql5.6.17\data\test il ya plusieurs fichiers dont 2 sur adherents_aca (form taille 8718mo, ibd 131072)
    pour ecrire mes scipts (html, js,php) j'utlise depuis toujours notepad++, mes fichiers sont dans mes docs..pages web sauf pour les essais en localhost (wamp/wwwwtest..)
    pour modifier mes tables j'utlise phpmyadmin (sous wampserver 2.5) je vais dans structure de ma table je coche tout et modifie l'interclassement
    Ok j'ai modifié l'encodage dans notepad mis en ANSI, j'ai vidé le log refait un test et je vous redis
    oui j'ai essayé les lignes de code sebware, et non je t'assure mes tables ne sont pas vides

  9. #29
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    aucun message d'erreur dans le php error log
    ce qui signifie que ma table est vide.....
    a n'y plus rien comprendre
    je vais en creer une autre pour voir

  10. #30
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut andre260.

    Citation Envoyé par "andre260
    alors je recois par mail l'avis de ta reponse, lorsque je vais sur l'interfaca developpez.net je ne vois pas ta reponse(normal >> donc F5 actualisez rien)
    je ferme l'ordi redemarre toujours rien (les bizarreries informatiques), je reponds apres envoi , bing ta reponse apparait, ceci dit pas grave
    Es-tu fâché avec les accents ?

    Sur certains forums, j'ai déjà eu des comportements bizarres, du genre rien pendant plusieurs jours, puis tout d'un coup, toutes les messages apparaissent.
    De ces messages, certaines dates justement de plusieurs jours et non de la date de réceptions.
    J'ai même vu des messages de plus de six mois arrivés. Je pense qu'il devait être validé par un modérateur qui a oublié de le faire.

    Citation Envoyé par "andre260
    dans : c:\wamp\bin\mysql\mysql5.6.17\data\test il y a plusieurs fichiers dont 2 sur adherents_aca (form taille 8718mo, ibd 131072)
    Ne pas toucher à ces fichiers. Si tu utilises le moteur InnoDB, tu dois avoir les types ".frm" et ".idb".
    Si je ne me trompe pas l'un contient la structure (frm) de ta table et l'autre les data+index (idb).

    Citation Envoyé par "andre260
    aucun message d'erreur dans le php error log
    ce qui signifie que ma table est vide.....
    S'il n'y a rien dans le log, cela signifie que tu n'as aucun problème avec ta requête.

    Ta table avec tes données n'est pas nécessairement vide, mais elle se trouve ailleurs que dans ta base de données.
    Tu dois avoir deux versions de cette table, l'une dans 'test' et l'autre ???
    Essayes par exemple de mettre mysql comme base de données.
    Je dis cela car si tu as créé ta table sans préciser où la mettre (je parle de la base de données), elle a très bien pu se mettre sous mysql.
    Donc vérifie que tu ne trouves pas ta table en allant fouiller sous "c:/wamp/bin/mysql/mysql5.6.xx/data/mysql".
    Et à tout hasard, essayes de voir si elle ne serait pas dans une autre base de données.

    Quand tu fais une opération sur une base de données, hors php, il faut toujours préciser le nom de la base, en tapant :"use test" par exemple.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  11. #31
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    merci Artemus
    dès la fin de l’après midi je me remets au travail
    bonne journée
    cdt
    André

  12. #32
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    donc j'ai créé une nouvelle table mis dans la bd mysql test en localhost = RIEN
    après j'ai mis mon script en ligne pour voir
    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
    61
    62
    <html>
    <head>
    <meta charset="utf-8">
    <title>ACA</title>
    <link href="mon_style_2.css" rel="stylesheet" type="text/css" />
    </head>
    <body>
    <?php
    $nom_du_serveur  = "mysql:host=axxxxde.mysql.db;dbname=axxxxde";
    $nom_utilisateur = "axxxde";
    $mot_de_passe    = "xxxxx";
     
    $options         = array(
    	PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1",
    	PDO::ATTR_CASE               => PDO::CASE_LOWER,
    	PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    	PDO::ATTR_PERSISTENT         => false,
    	PDO::ATTR_AUTOCOMMIT
    );
     
    try {
    	$link = new PDO($nom_du_serveur, $nom_utilisateur, $mot_de_passe, $options);
    }
    catch (Exception $e)
    {
    	echo "Connection à MySql impossible : ", $e->getMessage();
    	die();
    }
    try 
    {
    	$sel = $link->prepare("SELECT date_naissance, adresse FROM adherents where num_lic = :licence");
     
    	$sel->bindParam('licence', $_POST['numlicence']);
     
    	$sel->execute();
     
    	while ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	{
     
    		print_r($row['date_naissance'],$row['adresse']);
    	}
     
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requête select : ", $e->getMessage();
    	die();
    }
     
    $sel->closeCursor();
    ?>   
     
    <fieldset id="titre"> 
     
    <p>Bonjour&nbspM:&nbsp;<?php echo $_POST['nom_prenom']; ?>&nbsp;<br>Tu es né le :&nbsp;&nbsp;<?php printf($row['datenaiss'],$row['adresse']); ?>&nbsp;&nbsp;
    <p>tu résides à &nbsp;&nbsp;<?php printf($row['date_nais'],$row['adr']); ?>&nbsp;&nbsp;</br>
    <br>ton numero de telephone est&nbsp;&nbsp;<?php echo $_POST['phone']; ?>&nbsp;&nbsp;ton mail :&nbsp;<?php echo $_POST['courriel']; ?>&nbsp;&nbsp;</br>
    <br>tu es affilié à la Federation :&nbsp;&nbsp;<?php echo $_POST['fede'];?></br>
    <br>tu as choisi de faire l'epreuve de :&nbsp<?php echo $_POST['Rando'];?>&nbsp;&nbsp;&nbsp;Le :&nbsp;<?php echo $_POST['DateR'];?>&nbsp;et la distance de &nbsp;<?php echo $_POST['Dist'];?>Km</br></p>
    </fieldset>
    </body>
    </html>
    voila une partie du code sur la page formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <p>
    					<label for="numlicence"><strong>N° de Licence : </strong></label>
    						<input id="numlicence" type="text" name="numlicence" size="8" maxlength="10" /><br />
     
    				</p>
    et toujours pareil pas d'affichage sur les champs date naissance et adresse
    après ceci j'ai changé la table par une autre " Infos_Club " qui est sur serveur ovh celle ci fonctionne tres bien
    et je ne recupere rien retour case départ

  13. #33
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut andre260.

    Il y a quelques petites erreurs dans ton script.

    1) il faut obligatoirement mettre dans un document html, un doctype :
    2) si tu travailles en "latin1", autant mettre tes documents html aussi en "latin1".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta charset="ISO-8859-1">
    Et ne pas oublier de convertir le document en "iso-8859-1".
    Ou encore comme je le fait, mets tout en "ANSI".

    3) si tu as besoin de comptabiliser le nombre de lignes extraits de ta requête, tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $count = $sel->rowCount();
    4) parfois, il est nécessaire de préciser le type de donnée que tu passes en argument dans un bindparam :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel->bindParam('licence', $_POST['numlicence'], PDO::PARAM_INT);
    5) il existe une autre forme d'écriture du bindparam qui peut-être plus simple à l'usage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sel = $link->prepare("SELECT date_naissance, adresse FROM adherents WHERE num_lic = ?");
    $sel->execute(array(1));
    La différence se porte sur d'une part mettre un "?" dans la requête et d'autre part d'utiliser array() pour faire le passage positionnel des paramètres.
    Personnellement, je préfère le bindparam.

    6) tu dois extraire tes données de MySql et ensuite, les mettre en forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	if ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	{
    		$date_naissance = $row['date_naissance'];
    		$adresse        = $row['adresse'];
    	}
    	else
    	{
    		$date_naissance = '----';
    		$adresse        = '----';
    	}
    Je teste si l'extraction s'est bien faite. Deux cas :
    --> aucune ligne, la valeur de retour est à NULL.
    --> il y a des lignes, la valeur de retour est un pointeur sur un tableau.

    Ici, je récupère depuis $row[], puisque je suis dans le mode association, la valeur de la ligne courante.
    Comme j'obtiens de l'extraction une et une seule ligne, il est inutile de faire une boucle.

    Et comme tu le voies, j'ai rangé le résultat que j'obtiens directement dans la variable.

    7) tu peux utiliser la fonction entities sur l'exception :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	echo "Connection à MySql impossible : ", entities($e->getMessage());
    Ceci permet d'avoir la bonne conversion des caractères entre l'utf8 et iso8859-1.

    8) j'ai repris mon exemple et je l'ai adapté. Maintenant ça fonctionne !
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!doctype html>
    <html>
    <head>
    <meta charset="ISO-8859-1">
    <title>ACA</title>
    <link href="styles.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
    <?php
    /*--------------*/
     
    $_POST['numlicence'] = 1;
     
    /*--------------*/
     
    /*-----------------------------------------------------*/
    /* Informations pour la connexion à la base de données */
    /*-----------------------------------------------------*/
     
    $nom_du_serveur  = "mysql:host=localhost;dbname=base";
    $nom_utilisateur = "root";
    $mot_de_passe    = "root";
     
    $options         = array(
    	PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1",
    	PDO::ATTR_CASE               => PDO::CASE_LOWER,
    	PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    	PDO::ATTR_PERSISTENT         => false,
    	PDO::ATTR_AUTOCOMMIT
    );
     
    /*----------------------*/
    /* Connexion au Serveur */
    /*----------------------*/
     
    try {
    	$link = new PDO($nom_du_serveur, $nom_utilisateur, $mot_de_passe, $options);
    }
    catch (Exception $e)
    {
    	echo "Connection à MySql impossible : ", $e->getMessage();
    	die();
    }
     
    /*---------------------*/
    /* lecture de la table */
    /*---------------------*/
     
    try {
    	$sel = $link->prepare("SELECT date_naissance, adresse FROM adherents WHERE num_lic = :licence");
    /*	$sel = $link->prepare("SELECT date_naissance, adresse FROM adherents WHERE num_lic = ?");*/
     
    	$sel->bindParam('licence', $_POST['numlicence'], PDO::PARAM_INT);
     
    	$sel->execute();
     
    /*	$sel->execute(array(1));*/
     
    	if ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	{
    		$date_naissance = $row['date_naissance'];
    		$adresse        = $row['adresse'];
    	}
    	else
    	{
    		$date_naissance = '----';
    		$adresse        = '----';
    	}
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requête select : ", $e->getMessage();
    	die();
    }
     
    $sel->closeCursor();
     
    ?>
    <p>DATE NAISSANCE : <?php echo $date_naissance ?></p>
    <p>ADRESSE        : <?php echo $adresse ?></p>
    </body>
    </html>
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  14. #34
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    Bonjour Artemus
    Excuse moi j'ai un peu arrangé 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
    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
    61
    62
    63
    64
    65
    <?php
    //$nom_du_serveur  = "mysql:host=ac--e.mysql.db;dbname=a--e";
    //$nom_utilisateur = "a--e";
    //$mot_de_passe    = "A--2";
    //$options         = array(
    //PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES latin1",
    //PDO::ATTR_CASE               => PDO::CASE_LOWER,
    //PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    //PDO::ATTR_PERSISTENT         => false,
    //PDO::ATTR_AUTOCOMMIT
    //);
    try
    {
      $bdd = new PDO('mysql:host=a--db;dbname=a--e;charset=utf8', 'a--e', 'A--2');
    }
    catch(Exception $e)
    {
        // En cas d'erreur, on affiche un message et on arrête tout
            die('Erreur : '.$e->getMessage());
    }
    try 
     {
    	//$sel = $link->prepare("SELECT Adresse, Date_Naissance FROM Infos_Club where numerolic = :licence"); 
    	//$sel->bindParam('licence', $_POST['numlicence']); 
    	//$sel->execute();    
    	//while ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	//{
    	//print_r($row['Date_Naissance'],$row['Adresse']);
    	//}	
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requête select : ", $e->getMessage();
    	die();
    }
    ?>
    <fieldset id="titre"> 
    <p>Bonjour&nbspM:&nbsp;<?php echo $_POST['nom_prenom']; ?>&nbsp;<br>Tu es né le :&nbsp;&nbsp;<?php printf($row['Date_Naissance'],$row['Adresse']); ?>&nbsp;&nbsp;
    <p>tu résides Ã* &nbsp;&nbsp;<?php printf($row['Date_Naissance'],$row['Adresse']); ?>&nbsp;&nbsp;</br>
    <br>ton numero de telephone est&nbsp;&nbsp;<?php echo $_POST['phone']; ?>&nbsp;&nbsp;ton mail :&nbsp;<?php echo $_POST['courriel']; ?>&nbsp;&nbsp;</br>
    <br>tu es affilié Ã* la Federation :&nbsp;&nbsp;<?php echo $_POST['fede'];?>&nbsp;&nbsp;ton numero de licence : <?php echo $_POST['numlicence'];?></br>
    <br>tu as choisi de faire l'epreuve de :&nbsp<?php echo $_POST['Rando'];?>&nbsp;&nbsp;&nbsp;Le :&nbsp;<?php echo $_POST['DateR'];?></br>
    <br>&nbsp;et la distance de &nbsp;<?php echo $_POST['Dist'];?>Km</br></p>
    </fieldset>
    <?php
    // On récupère tout le contenu de la table infos club
    $reponse = $bdd->query('SELECT * FROM Infos_Club LIMIT 5');
    echo '<p></p>';
    while ($donnees = $reponse->fetch())
    {	
    ?>
    <table>
         <td> <?php echo $donnees['Identite'];?></td>	 
    	 <td><?php echo $donnees['Sexe'];?></td>
    	 <td><?php echo $donnees['Date_Naissance'];?></td>
    	 <td> <?php echo $donnees['numerolic'];?></td>
    	 <td><?php echo $donnees['Email'];?></td>
    	 <td><?php echo $donnees['telephone'];?></td>
    	 <td><?php echo $donnees['Adresse'];?> </td>   
       </p>
    </table>
    <?php
    }
    $reponse->closeCursor(); // Termine le traitement de la requête
    ?>
    Donc Ma bd est bien connectée
    Il lit bien la table et il m'affiche les infos de la table "Infos_Club" (excuse pour les majuscules) partie echo donnees
    par contre la 1ere partie du code ou il doit lire et afficher Date_Naissance et Adresse ne sont toujours pas lues
    Je comprends pas c'est la même table
    J'ai mis en commentaire car il restitue une erreur sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel = $link->prepare("SELECT Adresse, Date_Naissance FROM Infos_Club where numerolic = :licence");
    donc il suffit juste d'harmoniser ces 2 codes
    je te remercie

  15. #35
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    Je viens seulement de prendre connaissance de ton message
    je lis cela en fin d'apres midi à tête reposée
    cdt

  16. #36
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 064
    Points
    19 064
    Par défaut
    Salut andre260.

    J'ai repris ton exemple. J'ai créé une table MySql avec un tout petit jeu d'essai.
    J'ai adapté le code php ton exemple et j'ai fait en sorte d'obtenir une extraction.
    Je l'ai testé cette fois-ci, et j'obtiens bien un résultat.
    Maintenant, je pense que tu vas pouvoir t'en sortir !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  17. #37
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    Voici ce que j'obtiens
    la partie superieure n'affiche pas les 2 renseignements desirés
    et la partie basse le fait avec les mêmes champs (j'y perds mon latin)
    Nom : capture.jpg
Affichages : 93
Taille : 142,6 Ko

  18. #38
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut ouf
    Enfin j'ai trouvé ce qui clochait au lieu de prendre numlicence comme condition where
    j'ai changé par le telephone et la bingo
    tout s'affiche, je n'ai plus qu'a mettre un d'ordre
    mais je voudrais bien comprendre, le pourquoi du comment
    en tout cas je te remercie pour tout et de la patience
    cdt
    andre

  19. #39
    Membre régulier
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2008
    Messages : 72
    Points : 108
    Points
    108
    Par défaut
    oublié résolu

Discussions similaires

  1. Récupération du résultat d'une requête sur une table liée
    Par champijulie dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 05/06/2007, 12h26
  2. Effectuer une requête sur une table.
    Par Premium dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/05/2007, 16h27
  3. Recupérer le résultat d'une requête sur une table Firebird
    Par defluc dans le forum Bases de données
    Réponses: 7
    Dernier message: 20/04/2007, 18h30
  4. Réponses: 5
    Dernier message: 08/01/2007, 21h03
  5. requéte sur une table
    Par iutcien dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/06/2006, 15h42

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