Problème de script requête SQL dynamique
Fermé
Pierre-Yves
-
16 nov. 2006 à 20:32
boss0211 Messages postés 264 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 9 septembre 2007 - 16 nov. 2006 à 21:22
boss0211 Messages postés 264 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 9 septembre 2007 - 16 nov. 2006 à 21:22
A voir également:
- Problème de script requête SQL dynamique
- Tableau croisé dynamique - Guide
- Script vidéo youtube - Guide
- Liste déroulante dynamique excel - Guide
- Mas script - Accueil - Windows
- Liste déroulante dynamique en cascade excel - Guide
2 réponses
PhP
Messages postés
1770
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
16 nov. 2006 à 21:10
16 nov. 2006 à 21:10
Bsr,
Oui forcément il y a une erreur ... mais il ne faut pas prendre tout ce que raconte PHP au pied de la lettre car elle ne se situe pas à la ligne 1 mais ici (entres autres)
Simple apostrophe ou guillemet (double) à toi de choisir mais commence et termine ta chaîne par le même caractère. De plus ce caractère ne doit pas apparaître dans la chaîne sauf à le préfixer par un anti-slash : le caractère \
Pour tout savoir sur les chaînes de caractères en PHP :
https://www.php.net/manual/fr/language.types.string.php
Sache que si tu écris :
$site="CCM";
$a='Vous êtes sur $site'; // Attention apostrophe
alors $a contient : Vous êtes sur $site
par contre :
$site="CCM";
$a="Vous êtes sur $site"; // Attention guillemet
alors $a contient : Vous êtes sur CCM
PHP a substitué la variable $site par son contenu : personnellement je déteste ce comportement source d'erreur !!!!
De plus ceci ne fonctionne qu'avec des variables simples mais pas avec $_POST ni $_GET ni d'une façon générale avec les tableaux associatifs !
Je préfère toujours utiliser un apostrophe ou guillemet simple et écrire
$a='Vous êtes sur '.$site;
Là au moins c'est clair et net
Si dans ma chaîne j'ai également besoin d'un apostrophe alors je le préfixe par le caractère \ (anti-slash)
Ex :
$a='Aujourd\'ui'; // Note l'anti-slash
Pour ton pb tu peux donc écrire :
Avec des apostrophes (il n'y a aucun guillemet dans ce qui suit !)
ou encore
Avec des guillemets
Voilà
Oui forcément il y a une erreur ... mais il ne faut pas prendre tout ce que raconte PHP au pied de la lettre car elle ne se situe pas à la ligne 1 mais ici (entres autres)
$sql .= ' AND Entreprise LIKE '%$_POST['Entreprise']%'';
Simple apostrophe ou guillemet (double) à toi de choisir mais commence et termine ta chaîne par le même caractère. De plus ce caractère ne doit pas apparaître dans la chaîne sauf à le préfixer par un anti-slash : le caractère \
Pour tout savoir sur les chaînes de caractères en PHP :
https://www.php.net/manual/fr/language.types.string.php
Sache que si tu écris :
$site="CCM";
$a='Vous êtes sur $site'; // Attention apostrophe
alors $a contient : Vous êtes sur $site
par contre :
$site="CCM";
$a="Vous êtes sur $site"; // Attention guillemet
alors $a contient : Vous êtes sur CCM
PHP a substitué la variable $site par son contenu : personnellement je déteste ce comportement source d'erreur !!!!
De plus ceci ne fonctionne qu'avec des variables simples mais pas avec $_POST ni $_GET ni d'une façon générale avec les tableaux associatifs !
Je préfère toujours utiliser un apostrophe ou guillemet simple et écrire
$a='Vous êtes sur '.$site;
Là au moins c'est clair et net
Si dans ma chaîne j'ai également besoin d'un apostrophe alors je le préfixe par le caractère \ (anti-slash)
Ex :
$a='Aujourd\'ui'; // Note l'anti-slash
Pour ton pb tu peux donc écrire :
Avec des apostrophes (il n'y a aucun guillemet dans ce qui suit !)
$sql .= ' AND Entreprise LIKE \'%'.$_POST['Entreprise'].'%\'';
ou encore
Avec des guillemets
$sql .= " AND Entreprise LIKE '%".$_POST['Entreprise']."%'";
Voilà
boss0211
Messages postés
264
Date d'inscription
lundi 13 février 2006
Statut
Membre
Dernière intervention
9 septembre 2007
8
16 nov. 2006 à 21:22
16 nov. 2006 à 21:22
Tes requette sont pas bonnes
Il faudrais que tu les mettent en array et quel ce termine en UNE et seul variable dans ta requette select.
Il faudrais que tu les mettent en array et quel ce termine en UNE et seul variable dans ta requette select.
$sql = 'SELECT * FROM spons WHERE '$ma_seul_requette_de_sorti;