A voir également:
- [PHP] recherche BDD
- Recherche musique - Guide
- Google recherche par image - Guide
- Easy php - Télécharger - Divers Web & Internet
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche adresse - Guide
5 réponses
mindslight
Messages postés
87
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
29 octobre 2009
12
6 juin 2008 à 10:20
6 juin 2008 à 10:20
Bonjour,
tu peux tester si un champ a ete rempli de cette maniere:
if (isset($_POST['mon_champ']) && trim($_POST['rech_pa']) != '')
{
// je prend en compte le champ
}
tu peux tester si un champ a ete rempli de cette maniere:
if (isset($_POST['mon_champ']) && trim($_POST['rech_pa']) != '')
{
// je prend en compte le champ
}
mindslight
Messages postés
87
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
29 octobre 2009
12
6 juin 2008 à 10:27
6 juin 2008 à 10:27
attention au probleme de securite! car un hacker peu scupuleux
aura aucun mal a casser ta base de donnee a coup d'injection SQL
rajoute des addslashees() autour des donnees de type string et cast
les valeurs en int pour les entiers. sans oublier les back-quote autour des noms de colonnes.
ta requette deviens donc:
$sql = 'SELECT `ent_adresse`, `ent_ville`
FROM `cpt_entreprise`
WHERE `ent_raison_sociale` LIKE \''. addslashees($rech_raison_sociale) . '\'
AND `ent_date_dem` LIKE \'' . addslashees($rech_date_dem) . '\'';
si un seul champ est retourne, oublie pas le "LIMIT 1" a la fin de ta requette.
bon courrage.
aura aucun mal a casser ta base de donnee a coup d'injection SQL
rajoute des addslashees() autour des donnees de type string et cast
les valeurs en int pour les entiers. sans oublier les back-quote autour des noms de colonnes.
ta requette deviens donc:
$sql = 'SELECT `ent_adresse`, `ent_ville`
FROM `cpt_entreprise`
WHERE `ent_raison_sociale` LIKE \''. addslashees($rech_raison_sociale) . '\'
AND `ent_date_dem` LIKE \'' . addslashees($rech_date_dem) . '\'';
si un seul champ est retourne, oublie pas le "LIMIT 1" a la fin de ta requette.
bon courrage.
mindslight
Messages postés
87
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
29 octobre 2009
12
6 juin 2008 à 10:33
6 juin 2008 à 10:33
re,
dans le cas ou la condition :
if (isset($_POST['mon_champ']) && trim($_POST['rech_pa']) != '')
n'est pas vrai donc attribu une valeur par defaut ou
tu sort de ta fonction
dans le cas ou la condition :
if (isset($_POST['mon_champ']) && trim($_POST['rech_pa']) != '')
n'est pas vrai donc attribu une valeur par defaut ou
tu sort de ta fonction
Okay je comprends ce que vous voulez dire mais comment faire varier ma requete en fonction de ce que contiendra la variable.
En gros ce que je veux dire c'est que si le champ est vide alors il ne faut pas l'integrer dans la requete SQL.
PS : JE sis une newbie en php , j'ai que 5 jours dans les doigts xD!
En gros ce que je veux dire c'est que si le champ est vide alors il ne faut pas l'integrer dans la requete SQL.
PS : JE sis une newbie en php , j'ai que 5 jours dans les doigts xD!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mindslight
Messages postés
87
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
29 octobre 2009
12
6 juin 2008 à 10:58
6 juin 2008 à 10:58
ok,
tu peux proceder comme ca:
-------------------------------------------------------------------------------------------------------------------------
$sql = 'SELECT `ent_adresse`, `ent_ville`
FROM `cpt_entreprise`
'WHERE `ent_raison_sociale` LIKE \''. addslashees($rech_raison_sociale) . '\'';
if (...)
$sql .= ' AND `col1` LIKE \'' . addslashees($var1) . '\'';
else if (...)
$sql .= ' AND `col2` LIKE \'' . addslashees($var2) . '\'';
else
$sql .= ' AND `col3` = ' . (int)$var3;
-------------------------------------------------------------------------------------------------------------------------
en clair, utiliser la concatenation (.=) et des tests afin de modifier la requette.
tu peux proceder comme ca:
-------------------------------------------------------------------------------------------------------------------------
$sql = 'SELECT `ent_adresse`, `ent_ville`
FROM `cpt_entreprise`
'WHERE `ent_raison_sociale` LIKE \''. addslashees($rech_raison_sociale) . '\'';
if (...)
$sql .= ' AND `col1` LIKE \'' . addslashees($var1) . '\'';
else if (...)
$sql .= ' AND `col2` LIKE \'' . addslashees($var2) . '\'';
else
$sql .= ' AND `col3` = ' . (int)$var3;
-------------------------------------------------------------------------------------------------------------------------
en clair, utiliser la concatenation (.=) et des tests afin de modifier la requette.
6 juin 2008 à 10:29
C'est la que je coince en fait