Problème de script requête SQL dynamique
Pierre-Yves -
boss0211 Messages postés 264 Date d'inscription Statut Membre Dernière intervention - 16 nov. 2006 à 21:22
boss0211 Messages postés 264 Date d'inscription Statut Membre Dernière intervention - 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
- Exemple tableau croisé dynamique télécharger - Télécharger - Tableur
- Liste déroulante dynamique excel - Guide
- Mas script - Accueil - Windows
2 réponses
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à