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

Langage PHP Discussion :

Fonction pour stocker requête


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut Fonction pour stocker requête
    Bonjour à tous,


    J'ai créer une fonction ou je stocke dedans une requete sql (car je l'appel 4 fois)

    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
     
    function sql_reclamation($id_reclamation)
    {
     
    $query="SELECT u2.nom_user AS nom_televendeuse, u2.prenom_user AS prenom_televendeuse,
     id_reclamation, heure_reclamation, reclamation.id_motif_reclamation, nom_motif_reclamation, 
    code_client, nom_client, adresse_client, ville_client, contact_client, tel_client, fax_client, 
    des_reclamation, cause_reclamation, code_produit, nom_produit, lot_reclamation,n_carton, 
    quantite, nom_type_quantite, DATE_FORMAT(date_fabrication,'%d/%m/%Y') as date_fabrication,
     DATE_FORMAT(date_dluo,'%d%/%m/%Y') as date_dluo, equipe, n_bl, n_facture, u1.nom_user, 
    u1.prenom_user
    FROM reclamation
    LEFT JOIN produit ON produit.id_produit=reclamation.id_produit
    INNER JOIN motif_reclamation ON motif_reclamation.id_motif_reclamation = reclamation.id_motif_reclamation
    INNER JOIN user u1 ON u1.id_user = reclamation.id_user
    INNER JOIN client c ON c.id_client = reclamation.id_client
    INNER JOIN user u2 ON u2.id_user = c.id_televendeuse
    LEFT JOIN type_quantite ON reclamation.id_type_quantite=type_quantite.id_type_quantite
    WHERE id_reclamation='$id_reclamation'";
    //echo $res;
    }
    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
     
    	 $resmail = mysql_query("SELECT login_user, mdp_user, email_user FROM user INNER JOIN user_groupe ON user_groupe.id_user_groupe=user.id_user_groupe WHERE user.id_user_groupe='4'; ");
    	while($rosmail = mysql_fetch_assoc($resmail))
    		{
    sql_reclamation($id_reclamation);
    echo $query;
    							//while($row0 = mysql_fetch_assoc($res)){
     
    							//$id_motif_reclamation=$row0["id_motif_reclamation"];
    							//$code_client= $row0["code_client"];
    							//$nom_motif_reclamation= $row0["nom_motif_reclamation"];	
    							//$message = mail_exe_ai_cc($row0); 
    							//				}
     
     
    header_mail($headers);
    	//$Sujet = 'Réclamation Proritaire COPIE'.$nom_motif_reclamation.' sur le client '.$code_client.'';	 
     
    	//if(mail('fguillot@groupe-elancia.com', $Sujet, $message, $headers))
        //{
        //     echo 'Le message a été envoyé qualité';
        //}
        // else
        // {
        //    echo 'Le message n\'a pu être envoyé';
       //  }
    Je recupere plus haut la variable $id_reclamation, que j'ai indiqué dans ma fonction. Mais cela ne fonctionne pas (while ros =......)

    Quelle erreur j'ai commis pour réaliser ceci? Est la bonne methode ?

    Merci

    guigui69

  2. #2
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 60
    Points : 59
    Points
    59
    Par défaut
    sql_reclamation($id_reclamation);
    echo $query;

    $query et vide!!!

    pour le remplir du doit faire un return $query dans ta fonction et
    $query = sql_reclamation($id_reclamation);

  3. #3
    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 : 37
    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
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    le problème vient du fait que ta fonction ne retourne rien :

    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
    function sql_reclamation($id_reclamation)
    {
     
    $query="SELECT u2.nom_user AS nom_televendeuse, u2.prenom_user AS prenom_televendeuse,
     id_reclamation, heure_reclamation, reclamation.id_motif_reclamation, nom_motif_reclamation, 
    code_client, nom_client, adresse_client, ville_client, contact_client, tel_client, fax_client, 
    des_reclamation, cause_reclamation, code_produit, nom_produit, lot_reclamation,n_carton, 
    quantite, nom_type_quantite, DATE_FORMAT(date_fabrication,'%d/%m/%Y') as date_fabrication,
     DATE_FORMAT(date_dluo,'%d%/%m/%Y') as date_dluo, equipe, n_bl, n_facture, u1.nom_user, 
    u1.prenom_user
    FROM reclamation
    LEFT JOIN produit ON produit.id_produit=reclamation.id_produit
    INNER JOIN motif_reclamation ON motif_reclamation.id_motif_reclamation = reclamation.id_motif_reclamation
    INNER JOIN user u1 ON u1.id_user = reclamation.id_user
    INNER JOIN client c ON c.id_client = reclamation.id_client
    INNER JOIN user u2 ON u2.id_user = c.id_televendeuse
    LEFT JOIN type_quantite ON reclamation.id_type_quantite=type_quantite.id_type_quantite
    WHERE id_reclamation='$id_reclamation'";
    return $query;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $requete = sql_reclamation($id_reclamation);
    Aussi, pourquoi affecter cette variable dans la boucle while() sachant que $id_reclamation ne change pas ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    Merci pour ton aide. J'ai trouvé.

    Maintenant je voudrait faire parreille pour le $headers pour l'envoe de mail (html)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function header_mail()
    {
    return 
    	 $headers ='From: "Service Réclamation"<No_reply@panidor.org>'."\n";
         $headers .='Reply-To: No_reply@panidor.org'."\n";
         $headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
         $headers .='Content-Transfer-Encoding: 8bit';
    }
    $headers = header_mail();

    Mais la il me prend que la premier ligne. Comment faire pour qu'il me rajoute le reste du code.?

    Merci

    guigui69

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    thomasR j'ai pas compris ta dernière phrase, peux-tu m'expliquer?

    Merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 816
    Points : 49
    Points
    49
    Par défaut
    J'ai trouver mon erreur pour le headers

  7. #7
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    On est tous là pour apprendre...

    Alors si tu peux préciser le code qui marche.

    Perso en regardant ta fonction header_mail(), ce qui m'a choquée, c'est que je me suis dit...

    Il faut entrer ta chaîne de caractères dans une variable et 'returner' la varialbe en dernier...

    Pour rappels

    1) On ne peut renvoyer qu'un seul return.
    2) Il stoppe la fonction donc il faut le mettre en dernier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     function header_mail(){
    $header='blabla';
    $header.='blibli';
    $header.='bloblo';
     
    return $header;
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

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

Discussions similaires

  1. [Oracle] Fonction pour lire le résultat d'une requête
    Par bsidy1 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/04/2009, 17h54
  2. Fonction pour éviter une requête redondante
    Par Him dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2009, 02h36
  3. quelle fonction pour ma requête
    Par ideal23 dans le forum Requêtes
    Réponses: 1
    Dernier message: 31/01/2007, 12h32
  4. Réponses: 7
    Dernier message: 10/09/2005, 16h49

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