[RESOLU] requête SQL précédée par IF

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] requête SQL précédée par IF

Re: requête SQL précédée par IF

par chris33 » 23 mars 2024, 16:52

Avec un double == dans les conditions.
Et

Code : Tout sélectionner

if(...){ $sql="SELECT cod, nom, lieu, cree FROM depa WHERE cod = '$recherche'"; }
...ça fonctionne !
Merci pour votre aide !

Re: requête SQL précédée par IF

par Spols » 20 mars 2024, 18:09

au passage, il faut un double == dans les conditions

Re: requête SQL précédée par IF

par or 1 » 20 mars 2024, 17:45

if(...){
$sql="SELECT cod, nom, lieu, cree FROM depa
WHERE cod = '$recherche'";
}
else if(...){
$sql="SELECT cod, nom, lieu, cree FROM depa
WHERE nom = '$recherche'";
}
...
il y a moyen de faire mieux mais pour un débutant, c'est déjà ça.

Re: requête SQL précédée par IF

par chris33 » 20 mars 2024, 16:11

Bonjour,
La liste déroulante possède un attribut name : <select name="index">. J'ai donc ajouté un $index = $_POST['index'];
Mais ensuite... multiples messages d'erreur que je m'efforce de corriger. J'en suis à :

Code : Tout sélectionner

if($index= "no") /* no étant la value de l'option */ {"SELECT cod, nom, chef_lieu, cree FROM depa WHERE cod = '$variable';"}
...qui obtient pour réponse :

Code : Tout sélectionner

Parse error: syntax error, unexpected token "}"
Rappel de ce que je voudrais obtenir : si le choix est 1, cherche variable en colonne 1 ; si le choix est 2 [elseif], cherche variable en colonne 2 ;... si il n'y a pas de réponse [else] écris "Désolé". Puis publie la ou les lignes réponse si il y en a.
Il est bien difficile de vouloir donner le choix de l'index approprié !

Re: requête SQL précédée par IF

par ynx » 15 mars 2024, 13:54

Bonjour,

La liste déroulante des thèmes (une balise html select ?) devrait posséder un attribut name : <select name="theme">...

A la soumission du formulaire, tu devrais donc pouvoir récupérer le thème choisi via $_GET['theme'] ou $_POST['theme'] selon la méthode du formulaire, puis faire une condition sur cette valeur pour construire la bonne requête sql.

requête SQL précédée par IF

par chris33 » 15 mars 2024, 10:43

Bonjour,
Je poursuis mon apprentissage PHP-MySQL. J’en étais à cette requête :

Code : Tout sélectionner

$sql="SELECT cod, nom, lieu, cree FROM depa WHERE cod = '$recherche' OR nom = '$recherche' OR lieu = '$recherche' OR cree = '$recherche' "; if...
Cela fonctionne, mais je voudrais une recherche plus précise. Dans un premier temps, l’utilisateur sélectionne un thème dans une liste déroulante, puis saisit une recherche : il faut que l’interrogation porte uniquement sur le thème choisi, ne s’applique donc qu’à la colonne correspondante de la table.
"précédée par if" : si a été choisi le thème 1, recherche en colonne 1 et aucune autre ; ou en colonne 2 si c’est le thème 2, etc. La fin sera identique à celle de la requête existante, soit un "désolé il n’y a pas de réponse", soit affichage de la ou des lignes de résultat.
Comment formuler cela : si c’est tel thème, interroge telle colonne ? Je ne trouve pas comment faire avec mes variables $index (dont je ne suis d’ailleurs pas sûr qu’elle soit importée de la liste déroulante) et $recherche, avec SELECT, WHERE et IF,... Pourrais-je avoir une nouvelle aide ?