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. #1
    Membre confirmé
    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
    Par défaut Requête sur une table
    bonsoir à tous, je bute sur une requete
    J'ai créé un formulaire, je recupere les données que je visualise sur une autre feuille (tout s'affiche) par une methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $_POST['nom_prenom']; ?>
    mais je voudrais afficher d'autres données issues d'une table (xxx) par une requete
    c'est le numero de licence qui doit declencher tout, il fait partie des saisies dans le formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $reponse = $bdd->query('SELECT * FROM adh where num_lic ') ;  
    {	
    while ($donnees = $reponse->fetch())
    rien ne s'affiche lorsque j'execute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo $donnees['d_nais'];?>
    je sais que ma requete n'est pas complete, je suis bien connecté, ma bd egalement
    merci de m'orienter car je ne vois comment harmoniser cela

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 871
    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 871
    Par défaut
    Salut andré260.

    En faisant ceci :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    use nom_de_votre_base_de_donnée;
    SELECT * FROM adh where num_lic
    sous phpmyadmin, est-ce que vous obtenez quelques lignes à l'affichage ?

    @+

  3. #3
    Membre confirmé
    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
    Par défaut
    bonjour Artemus
    je ne pourrai voir que soir assez tard je suis en deplacement toute la journee
    merci de te préoccuper de mon cas

  4. #4
    Membre confirmé
    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
    Par défaut
    Bonsoir Artemus24 voila mon code (la bd est bien connectée)
    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
    <?php
    // Requête préparée avec la variable provenant de $_POST
        $requete = $bdd->prepare('SELECT * FROM adherents_aca where num_licence = :licence;');
        $requete->execute( array( ':licence' => $_POST['num_licence'] ) );	
    	// Récupération des résultats dans un tableau
        $adherents = $requete->fetchAll();
    // Fermeture de l'objet PDO
        $requete->closeCursor();	
    // Boucle sur les lignes
        foreach( $adherents as $adherents ) 
    	{
    ?>
        <p></p>
    <?php
    	}  
    ?>
    <fieldset id="titre"> 
    <p>Bonjour&nbspM:&nbsp;<?php echo $_POST['nom_prenom']; ?>&nbsp;<br>Tu es né le :&nbsp;&nbsp;<?php echo $adherents['date_nais']; ?>&nbsp;&nbsp;
    <p>tu résides à &nbsp;&nbsp;<?php echo $adherents['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>&nbsp;&nbsp;ton N° de Licence est :&nbsp;&nbsp;<?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'];?>&nbsp;et la distance de &nbsp;<?php echo $_POST['Dist'];?>Km</br></p>
    ne s'affiche pas : $adherents['date_nais'] et $adherents['adr']
    données qui proviennent de la table' adherents_aca'

  5. #5
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Hello !

    Essaye avec "SELECT date_nais, adr FROM..." au lieu du "SELECT *"

  6. #6
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    et fais un var_dump de $adherents si ca ne marche toujours pas

  7. #7
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 871
    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 871
    Par défaut
    Salut andre260.

    Avez-vous testé ce que je vous ai demandé ?

    Citation Envoyé par Andre260
    (la bd est bien connectée)
    Comment le savez-vous que la base de données est bien connecté à ce que vous voulez faire ?

    Voici un exemple de ce qu'il faut faire pour ce connecter à une base de données.
    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
    $nom_du_serveur  = "mysql:host=localhost;dbname=test";
    $nom_utilisateur = "test";
    $mot_de_passe    = "test";
     
    $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();
    }
    ?>
    Le nom de l'hôte est 'localhost'.
    La base de données se nomme 'test'.
    Le userid et le password sont tous les deux à 'test'.

    Dans votre premier message, vous n'arrivez pas à extraire vos données.
    C'est normal car votre requête SQL ne fonctionne pas, ou bien je devrais dire est incomplète.

    Reprenons votre requête :
    --> SELECT * FROM adherents_aca where num_licence = :licence;,
    et modifions là, car "select *" n'est pas une bonne façon de procéder, d'où :
    --> SELECT date_nais, adr FROM adherents_aca where num_licence = :licence;.

    Nous devons récupérer deux colonnes, et passer en tant que paramètre une seule valeur.
    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
    try {
    	$sel = $link->prepare("SELECT date_nais, adr FROM adherents_aca where num_licence = :licence");
     
    	$sel->bindParam('license', $_POST['num_licence']);
     
    	$sel->execute();
     
    	while ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	{
    		printf($row['date_nais'],$row['adr']);
    	}
     
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requête select : ", $e->getMessage();
    	die();
    }
     
    $sel->closeCursor();
    $link est le lien que j'obtiens lors de la connexion de ma base de données.
    A vous de travailler la présentation de vos résultats.

    @+

  8. #8
    Membre confirmé
    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
    Par défaut
    Bonjour Artemus
    oui elle est bien connectée ma bd
    j'ai fait un test en amont une requete sur une autre table
    une variable et un select et un echo données celle ci s'affichait
    j'ai essayé ta premier methode hier soir sans resultat rien a l'affichage
    la journée j'avais potassé un peu ce qui m'a permis d'ecrire un autre code
    rien, je continue

  9. #9
    Membre confirmé
    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
    Par défaut
    Bonjour Artemus
    je travaille en local sous wamp
    j'ai repris ton code complet il me retourne une erreur sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel = $link->prepare("SELECT date_nais, adr FROM adherents_aca where num_lic = :licence");
    le nom de la table est bon (adherents_aca)
    les champs nommés sont bons (num_lic), (adr),(date_nais)
    le champ du formulaire est (numlicence) donc j'ai corrigé la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel->bindParam('license', $_POST['numlicence']);
    voici l'erreur
    Fatal error: Cannot use try without catch or finally in C:\wamp\www\test\test1\inscriptions.php on ligne
    voir plus haut
    la je patauge

  10. #10
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 871
    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 871
    Par défaut
    Salut Andre260.

    Je te rappelle que c'est juste un exemple et que tu dois l'adapter à ta convenance.

    Si je ne me trompe pas, tu as mis "$bdd->prepare()".
    Alors que j'ai mis "$link->prepare()".

    D'autre part, l'erreur indique que tu fait un try {}, sans avoir derrière un catch {}.
    As-tu bien respecté l'exemple que je t'ai donné ?

    Et pour finir, il s'agit ici de PDO et non de mysqli.

    @+

  11. #11
    Membre confirmé
    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
    Par défaut
    oui d'accord pou pdo ne suis pas mysqli voila le code complet
    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
    <?php
    $nom_du_serveur  = "mysql:host=localhost;dbname=test";
    $nom_utilisateur = "root";
    $mot_de_passe    = "";
     
    $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_nais, adr FROM adherents_aca where num_licence = :licence");
     
    	$sel->bindParam('license', $_POST['numlicence']);
     
    	$sel->execute();
     
    	while ($row = $sel->fetch(PDO::FETCH_ASSOC))
    	{
    		printf($row['date_nais'],$row['adr']);
    	}
    }
    catch ( Exception $e )
    {
    	echo "Une erreur est survenue dans la requête select : ", $e->getMessage();
    	die();
    }
     
    $sel->closeCursor();
    ?>
    et l'erreur :
    Une erreur est survenue dans la requête select : SQLSTATE[HY093]: Invalid parameter number: parameter was not defined

  12. #12
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    dans la requête SQL tu mets : ":licence"
    alors que pour définir le paramètre tu mets : $sel->bindParam('license', ...
    d’où le "parameter was not defined"

  13. #13
    Membre confirmé
    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
    Par défaut
    effectivement corrige, plus d'erreur
    mais rien ne s'affiche avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf($row['date_nais'],$row['adr']);
    ce qui voudrait dire qu'il ne va pas lire la table en question
    tous les autres elements du formulaire s'affichent par echo donnees (variable)
    y a un un gros bleme je ne sais ou , j'ai essayé sur une autre table idem

  14. #14
    Membre confirmé
    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
    Par défaut
    voila ce que j'obtiens
    Bonjour M: Mi A
    Tu es né le : RIEN

    tu résides à RIEN

    ton numero de telephone est 0600000 ton mail : andre260@xxxx.fr

    tu es affilié à la Federation : FFC

    ton N° de Licence est : 591672

    tu as choisi de faire l'epreuve de : RxxxxxN Le : 5 Mars et la distance de xxKm

  15. #15
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    est ce que tu peut fair un print_r($row); a la place du printf et nous donner le résultat ?

  16. #16
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    et tu peux mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sel->debugDumpParams();
    après : $sel->execute();
    pour vérifier la requête

  17. #17
    Membre confirmé
    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
    Par défaut
    idem pour l'affichage + cette info
    SQL: [65]
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date_nais, adr FROM adherents_aca where num_lic = :licence Params: 1 Key: Name: [8] :licence paramno=-1 name=[8] ":licence" is_param=1 param_type=2

  18. #18
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    Ta requête ne dois retourner aucun résultat du coup il n'y a aucun passage dans la boucle while

  19. #19
    Membre confirmé
    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
    Par défaut
    merci de te préoccuper
    du coup..... y a plus rien a faire...
    la misere donc
    a++

  20. #20
    Membre chevronné Avatar de Sebwar
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2012
    Messages
    172
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 172
    Par défaut
    A priori tout est bon

    Essaye avec la requête suivante, ça devrait t'afficher quelques chose si tu as des données dans ta table, histoire de vérifier que tout marche bien

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT date_nais, adr FROM adherents_aca LIMIT 10

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