A voir également:
- Conditions, php et formulaire
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de reclamation instagram - Guide
- Confirmer le nouvel envoi du formulaire err_cache_miss - Forum Google Chrome
- Confirmation de l'envoi d'un formulaire html ✓ - Forum HTML
9 réponses
Archeus01
Messages postés
1572
Date d'inscription
mercredi 3 octobre 2007
Statut
Membre
Dernière intervention
9 juin 2022
452
18 mai 2009 à 16:48
18 mai 2009 à 16:48
Voila ce que tu veux
if (!empty ($_POST ['var1']) && (!empty ($_POST ['var1'])))
{
$requete.="AND (liaison.id1 = '$var1') AND liaison2.id3 = '$var2'";
} else if (! empty ($_POST ['var1'])) {
$requete.="AND (liaison.id1 = '$var1')'";
} else if (! empty ($_POST ['var2'])) {
$requete.="AND (liaison2.id3 = '$var2')'";
}
Deux petites choses
Empty est une fonction donc forcément empty(arg)
ensuite, si tu fais !empty(!empty(arg)) (ligne 1 deuxième partie), renverra toujours false...
En effet si
si arg=null
empty (arg) renvoie true
!empty (arg) renvoie false
empty(!empty (arg))renvoie true
!empty(!empty (arg))renvoie false
si arg= 5
empty (arg) renvoie false
!empty (arg) renvoie true
empty(!empty (arg))renvoie true
!empty(!empty (arg))renvoie false
if (!empty ($_POST ['var1']) && (!empty ($_POST ['var1'])))
{
$requete.="AND (liaison.id1 = '$var1') AND liaison2.id3 = '$var2'";
} else if (! empty ($_POST ['var1'])) {
$requete.="AND (liaison.id1 = '$var1')'";
} else if (! empty ($_POST ['var2'])) {
$requete.="AND (liaison2.id3 = '$var2')'";
}
Deux petites choses
Empty est une fonction donc forcément empty(arg)
ensuite, si tu fais !empty(!empty(arg)) (ligne 1 deuxième partie), renverra toujours false...
En effet si
si arg=null
empty (arg) renvoie true
!empty (arg) renvoie false
empty(!empty (arg))renvoie true
!empty(!empty (arg))renvoie false
si arg= 5
empty (arg) renvoie false
!empty (arg) renvoie true
empty(!empty (arg))renvoie true
!empty(!empty (arg))renvoie false
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mai 2009 à 17:05
18 mai 2009 à 17:05
petite erreur de frappe je suppose:
if (!empty ($_POST ['var1']) && (!empty ($_POST ['var1'])))
serait plutot:
mais on peut faire plus simple:
if (!empty ($_POST ['var1']) && (!empty ($_POST ['var1'])))
serait plutot:
if (!empty ($_POST ['var1']) && (!empty ($_POST ['var2'])))
mais on peut faire plus simple:
$requete = SELECT * FROM mestables WHERE table1.id1 = liaison.id1 AND table2.id2 = liaison.id2 AND table3.id3 = liaison2.id3 AND table4.id4 = liaison2.id4 ; if (! empty ($_POST ['var1'])) { $requete.=" AND liaison.id1 = '".$var1."' "; //ne pas oublier l'espace avant AND } if (! empty ($_POST ['var2'])) { $requete.=" AND liaison2.id3 = '".$var2."' "; }
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mai 2009 à 18:00
18 mai 2009 à 18:00
quand tu dis ça ne marche pas tu as quoi ?
sinon:
sinon:
$requete = "SELECT * FROM table1,table2,table3,table4,liaison,liaison2 WHERE table1.id1 = liaison.id1 AND table2.id2 = liaison.id2 AND table3.id3 = liaison2.id3 AND table4.id4 = liaison2.id4 ";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
18 mai 2009 à 18:16
18 mai 2009 à 18:16
et si tu fais seulement avec cette partie de la requette:
sans les conditions rajoutées par les if
as tu des résultats ?
$requete = "SELECT * FROM table1,table2,table3,table4,liaison,liaison2 WHERE table1.id1 = liaison.id1 AND table2.id2 = liaison.id2 AND table3.id3 = liaison2.id3 AND table4.id4 = liaison2.id4 ";
sans les conditions rajoutées par les if
as tu des résultats ?
Oui, j'ai des résultats: mais tous les résultats: c'est à dire 2000 images!
Tu as raison, le problème doit venir de la requête... Merci pour toute ton aide!
Tu as raison, le problème doit venir de la requête... Merci pour toute ton aide!
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
19 mai 2009 à 11:41
19 mai 2009 à 11:41
alors on va avancer progressivement
essayes:
est ce que ta liste 1 porte bien le name="var1" ?
donnes nous un bout de code de ta liste
essayes:
$requete = "SELECT * FROM table1,table2,table3,table4,liaison,liaison2 WHERE table1.id1 = liaison.id1 AND table2.id2 = liaison.id2 AND table3.id3 = liaison2.id3 AND table4.id4 = liaison2.id4 "; if (! empty ($_POST ['var1'])) { echo "var1 recue: ".$_POST ['var1']; //Visualisation $requete.=" AND liaison.id1 = '".$var1."' "; //ne pas oublier l'espace avant AND }
est ce que ta liste 1 porte bien le name="var1" ?
donnes nous un bout de code de ta liste
Mais oui! ça venait de la liste! Une erreur si bête que j'ai honte de la dire...Mais maintenant ça fonctionne!
En tout cas merci, car même sans cette erreur débile, je n'y serais pas arrivée toute seule!
Le problème, c'est maintenant qu'il y a des tas de résultats en double (voire plus!)...c'est ce qu'on appelle les fameux doublons sql?
En tout cas merci, car même sans cette erreur débile, je n'y serais pas arrivée toute seule!
Le problème, c'est maintenant qu'il y a des tas de résultats en double (voire plus!)...c'est ce qu'on appelle les fameux doublons sql?
19 mai 2009 à 10:41
si arg=null
empty (arg) renvoie true
!empty (arg) renvoie false
empty(!empty (arg))renvoie true
!empty(!empty (arg))renvoie false
si arg= 5
empty (arg) renvoie false
!empty (arg) renvoie true
empty(!empty (arg))renvoie false
!empty(!empty (arg))renvoie true