Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2011, 19h07   #1
Invité de passage
 
philippe aucuit
Inscription : mars 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : philippe aucuit

Informations forums :
Inscription : mars 2010
Messages : 4
Points : 4
Points : 4
Par défaut quote ou double quote avec FPDF

Bonjour
Bonne année à tous,
Je fais appel à vous car je ne trouve pas, après maintes recherches, la réponse à mon problème.
J’utilise xp, mozilla firefox v 3.6.10, php v5.3.1, mysql v 5.1.43, easyphp v5.3.1.
Mon problème :
J’ai un panier(donc une commande) ok, le client valide son panier et les données sont traitées et envoyées dans 2 tables(commande et ligne_cde) par un fichier verif.php et les sessions crées sont détruites, c’est ok.
Suite à cette validation et cette insertion, la commande(panier) s’affiche à l’écran
dans un pdf ok. Le client pourra l’éditer et l’enregistrer.
Pour mon pdf j’utilise la librairie FPDF.
Pour créer ce pdf, le fichier verif.php a créé une nouvelle session avec pour seul élément le numéro de commande venant d’être créé, j’extrais ma variable $cde c’est ok.
Dans ce pdf j’ai 2 requêtes :
la première pour les coordonnées du client avec
[CODE-sql]$sql="SELECT etc…FROM client, commande WHERE ….LIKE ‘$cde’ … ; [/CODE]
c’est ok.
Pour ma deuxième requête je récupère les lignes de ma commande avec
Code sql :
$pdf->TABLE('SELECT etc … FROM ligne_cde  WHERE …LIKE "$cde"  ORDER BY type_boisson', $prop);
et problème ! aucun message d’erreur et pas de données d’affichage de ligne de commande.

Pour mes essais j’indiquais directement mon n° cde à la place de la variable $cde avec
…... LIKE ‘1031’ pour ma première requête et c’était ok.
et …LIKE "1031" Pour la deuxième requête et c’était ok.
Toutes mes données étaient présentent et j’étais content.
Voici enfin mon problème :
Pourquoi lorsque je change 1031 par ma variable dans la deuxième requête il ne renvoie rien, même pas de message(les coordonnées client s’affichent bien) ?
Est-ce que $pdf->TABLE(‘SELECT etc… accepte les variables comme élément de tri ?
Pourquoi toutes les quotes et double quotes sont inversées ?
J’ai repris l’exemple de la requête du script tableau avec mysql sur FPDF.
Merci pour vos réponses.
Voici mes 2 requêtes au complet.
phils210 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 20h08   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 986
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 986
Points : 18 234
Points : 18 234
Envoyer un message via MSN à CinePhil
Je préfère toujours écrire les requêtes dans une variable puis lancer l'exécution ensuite. Comme en plus actuellement j'utilise Zend Framework donc PDO, ça permet de binder les paramètres.

Par contre, malgré l'utilisation de PDO, je préfère écrire mes requêtes moi-même, surtout quand elles sont complexes. C'est plus rapide que la syntaxe style ORM de PDO.

Ce qui donne chez moi plutôt ceci :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    public function inscritStage($login)
    {
        $select = "
            SELECT p.prs_nom, p.prs_prenom,
                ssn.ssn_id, ssn.ssn_libelle, 
                DATE_FORMAT(ssn.ssn_date_debut, '%d/%m/%Y') AS ssn_date_debut, 
                DATE_FORMAT(ssn.ssn_date_fin, '%d/%m/%Y') AS ssn_date_fin,
                  e.etb_nom, c.cmn_nom, d.dpt_numero
            FROM th_utilisateur_uti AS u
            INNER JOIN te_personne_prs AS p ON p.prs_id = u.uti_id_personne
            LEFT OUTER JOIN tj_cnd_inscrire_ssn_cis AS cis ON cis_id_candidat = u.uti_id_personne
                  LEFT OUTER JOIN te_session_ssn AS ssn ON ssn.ssn_id = cis.cis_id_session
                    INNER JOIN th_stage_stg AS stg ON stg.stg_id_session = ssn.ssn_id
                          INNER JOIN te_etablissement_etb AS e ON e.etb_id = stg.stg_id_etablissement
                            INNER JOIN tr_commune_cmn AS c ON c.cmn_id = e.etb_id_commune
                                  INNER JOIN tr_departement_dpt AS d ON d.dpt_id = c.cmn_id_departement
            WHERE u.uti_login = ?
        ";
 
        return $this->_db->fetchRow($select, $login);
    } // Fin public function inscritStage($login)
Tu remarqueras que le texte de la requête est entre guillemets.

En programmation simple avec mysql_query, ça donnerait ce genre de truc :
Code :
1
2
3
4
5
6
7
$sql = "
  SELECT les_colonnes
FROM la_table
WHERE une_colonne = '$une_variable_texte_php'
";
 
mysql_query($sql) or die(mysql_error);
Rappels :
- En SQL, les valeurs textuelles s'écrivent entre apostrophes, pas entre guillemets.
- Inutile d'entourer les valeurs numériques avec des apostrophes.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 23h45   #3
Invité de passage
 
philippe aucuit
Inscription : mars 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : philippe aucuit

Informations forums :
Inscription : mars 2010
Messages : 4
Points : 4
Points : 4
merci pour cette réponse rapide.
je n'avais pas penser à cette solution.
encore merci à toi
à une prochaine fois.
philippe
phils210 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h34.


 
 
 
 
Partenaires

Hébergement Web