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ération résultat requete en variable [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut Recupération résultat requete en variable
    Bonjour,

    J'ai besoin de votre éclairage sur une requete mysql en PHP svp.

    Ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql2 = "SELECT (ID_APP) FROM application where NAME_APP = '$LIST_APP'";
    $res2 = mysql_query($sql2);
    J'affiche mon résultat sous forme de tableau ou je récupère mon objet au choix :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //tableau
    while($ID_APP = mysql_fetch_array($res2))
    {
    echo $ID_APP['ID_APP'] ; 
    }
     
    //ou Objet
     
    while($ID_APP = mysql_fetch_object($res2))
    {
    echo $ID_APP->ID_APP; 
     
    }
    L'echo me retourne bien la valeur que je souhaite ex : 2

    Jusque la pas de problème.

    Cependant apres je fais un insert dans ma base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql3 = ("INSERT INTO HOST VALUES('$ID_AP')");
    $res3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
    Sauf que ma variable $ID_APP est vide, j'ai une erreur SQL lors de l'insert :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Notice: Undefined variable: ID_AP inErreur SQL !
    INSERT INTO HOST VALUES('')
    Incorrect integer value: '' for column 'ID_APP' at row 1
    Comment récupérer le résiltat de ma requete sql2 et la mettre dans une varaible pour pouvoir l'insérer par la suite ??

    Merci d'avace pour vos réponses ...

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sql3 = ("INSERT INTO HOST VALUES('$ID_AP')");
    $res3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
    Je vois une erreur de frappe au niveau de $ID_AP, c'est plutôt $ID_APP, non ?. Pour les erreurs du style "Undefined variable", "Undefined index", il s'agit de mettre un isset, il permet de vérifier l'existence ou non de cette variable en question.

    J'espère t'avoir aidé !

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Je dis peut être une bétise mais il te manque un P à la fin de la variable... ?

    Ah pardon Toad tu m'as devancé

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    oui erreur de frappe dans mon post, mon code est correct, c'est $ID_APP merci

    Donc avez vous une idée ? je ne vois pas ...

    Je récupère bien mon résultat dans mon echo mais comment le passeer en variable ??

    Merci merci ...

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    Erreur dans mon code effectivement il manquait un "P"

    le vrai message d'erreur sql est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO HOST VALUES('')
    Incorrect integer value: '' for column 'ID_APP' at row 1
    Effectivement j'ai un "Incorrect integer value" car la varible est vide ...

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Ben si tu l'as dans ton echo et qu'elle est bonne je te conseille d'utiliser une requete préparée (D'ailleurs tu devrais le faire dans toutes tes requetes normalement)

    Ci-joint un code pour un insert en préparée, ça devrait t'aider.

    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
     
    try
    {
    $bdd = new PDO('mysql:host=localhost;dbname=aide_au_depannage','ident', 'mot_de_passe');
    }
    catch (Exception $e)
    	{
    		die('Erreur : ' . $e->getMessage());
    	}
    // Tu la prépares				
    $requete3 = $bdd->prepare('INSERT INTO fichier_solution(up_nom,up_idmessage,up_descriptif) VALUES(:up_nom,:up_idmessage,:up_descriptif)');
     
    // Et tu l'éxécutes en rentrant pour toi ta variable $ID_APP				
    $requete3->execute(array('up_nom' => $nomfile,
    				 'up_idmessage' => $index_file,
    				 'up_descriptif' => $_POST['up_describe']));

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut
    Le ID_APP c'est une variable en auto-incrément non ? Parce que si c'est le cas, on peut dire le ID_APP est déjà rempli, donc tu ne peux pas réinsérer au dessus, d'où l'erreur.

    En gros, tu n'as pas l'utilité de mettre "manuellement" la valeur, si tu souhaites absolument le faire, modifies la variable pour éviter qu'elle soit en auto-incrément.

    J'ai essayé d'être le plus clair. C'est une piste probable

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    Toad89 :

    ID_APP est auto incrémenté dans ma table APPLICATION ...

    Mais j'ai une table HOST que j'alimente avec ma requete select plus haut .. ou ID_APP n'est pas en auto increment ...

    Mon MCD MLD ICI :
    http://www.developpez.net/forums/d12...creation-base/


    Tanoak_LaCapuche :

    Je vais essayer ta solution mais pour le moment je voudrais juste la récupérer en variable, je test ...

    Merci à vous.

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Pardon oui c'est vrai que c'était ça la question à la base.

    C'est parce que mysql_fetch_array te retourne un tableau dont l'index commence a zéro.

    Donc pour avoir la variable c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variabidapp = $ID_APP[0];
    Tiens aussi ça devrai t'aider http://php.net/manual/fr/function.mysql-fetch-array.php

    Regarde aussi le dernier post de Fench sur les quotes dans les requetes dans le pb de delete de Toad. Ca devrait t'aider.

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut
    Citation Envoyé par Fench Voir le message

    @Toad89 et @Tanoak_LaCapuche petite leçon sur les quotes: Dans une ligne de code Php évaluera tout se qui se trouve entre double quote " et non entre simple quote ', de même comme la requête est sur un id ya pas besoin de la prendre comme une chaine DONC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1='delete FROM ADRESSEIP WHERE sr_id = '.$sr_id.' ';

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="delete FROM ADRESSEIP WHERE sr_id = '$sr_id'";


    ET ceci est correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="DELETE FROM adresseIP WHERE sr_id = $sr_id";
    Voilà ! J'espère que ça t'aidera autant que ça m'a aidé !

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Par défaut
    Merc Tanoak_LaCapuche, je viens de trouver tout seul comme un grand ...

    Effectivement il faut faire : $variabidapp = $ID_APP[0];

    Voila mar equete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql2 = "SELECT (ID_APP) FROM application where NAME_APP = '$LIST_APP'";
    $res2 = mysql_query($sql2);
     
    while($ID_APP = mysql_fetch_array($res2))
    {
    $ID_APPOK = $ID_APP['ID_APP'] ; 
    }
     
     
    $sql3 = ("INSERT INTO HOST VALUES('$ID_SERVER','$ID_APPOK')");
    $res3 = mysql_query($sql3) or die('Erreur SQL !<br>'.$sql3.'<br>'.mysql_error());
     
    mysql_close();
    Merci à vous !!!!!

    Sujet résolu

  12. #12
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Quelques remarques:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    //tableau
    while($ID_APP = mysql_fetch_array($res2))
    {
    //echo $ID_APP['ID_APP'] ; 
    var_dump( $ID_APP );
    }
    Tu verras mieux ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql3 = "INSERT INTO host (ID_APP) VALUES('".$ID_APP."')";

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

Discussions similaires

  1. Stocker Résultat requete SQL dans 1 variable
    Par agdid04 dans le forum Windows
    Réponses: 4
    Dernier message: 28/10/2013, 16h37
  2. affecter le résultat d'une requete à une variable globale
    Par Giuseppe24 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 26/03/2010, 14h13
  3. Recupérer résultat requete select
    Par piero53 dans le forum ASP.NET
    Réponses: 12
    Dernier message: 18/10/2009, 22h04
  4. mettre résultat requete dans une variable
    Par ptitepo dans le forum VB.NET
    Réponses: 15
    Dernier message: 04/11/2008, 14h07
  5. Réponses: 5
    Dernier message: 05/04/2005, 11h53

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