[RESOLU] Join + where

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] Join + where

Re: [RESOLU] Join + where

par Figuedi » 04 mars 2021, 23:42

En effet je l'ai modifié ainsi

Code : Tout sélectionner

$query = "SELECT systeme.*,contrat.* FROM systeme INNER JOIN contrat ON systeme.SystemNo = contrat.SystemNo WHERE ( systeme.SystemNo LIKE '".$name."' OR systeme.SystemName LIKE '".$name."' OR systeme.SiteName LIKE '".$name."' OR systeme.AddressLine1 LIKE '".$name."' OR systeme.PostCode LIKE '".$name."' OR systeme.Town LIKE '".$name."' OR systeme.FSESurname LIKE '".$name."' OR systeme.SerialNo like '".$name."') AND (systeme.SystemNo LIKE '".$name2."' OR systeme.SystemName LIKE '".$name2."' OR systeme.SiteName LIKE '".$name2."' OR systeme.AddressLine1 LIKE '".$name2."' OR systeme.PostCode LIKE '".$name2."' OR systeme.Town LIKE '".$name2."' OR systeme.FSESurname LIKE '".$name2."' OR systeme.SerialNo like '".$name2."') AND (systeme.SystemNo LIKE '".$name3."' OR systeme.SystemName LIKE '".$name3."'OR systeme.SiteName LIKE '".$name3."' OR systeme.AddressLine1 LIKE '".$name3."' OR systeme.PostCode LIKE '".$name3."' OR systeme.Town LIKE '".$name3."' OR systeme.FSESurname LIKE '".$name3."' OR systeme.SerialNo like '".$name3."') AND ( (DATEDIFF(contrat.ContractEndDate, '2020-01-01')>0 AND DATEDIFF(contrat.ContractEndDate, '2021-01-01')<0) OR (DATEDIFF(systeme.DateInstalled, '2020-01-01')>0 AND DATEDIFF(systeme.DateInstalled, '2021-01-01')<0))";

Re: [RESOLU] Join + where

par Ryle » 03 mars 2021, 17:36

Festival des LIKE! :shock:
C'est l'influence de facebook ;)

Par contre, je doute que la requête ci-dessus fonctionne avec les conditions placées dans le SELECT plutôt que dans le WHERE, mais vu que tu indiques que cela fonctionne et la mention "résolu" je suppose que tu as fait la correction dans ton code à défaut du forum :)

Re: [RESOLU] Join + where

par two3d » 03 mars 2021, 10:35

Festival des LIKE! :shock:

Re: Join + where

par Figuedi » 02 mars 2021, 22:10

Bien vu merci,
cela fonctionne si un seul where

Code : Tout sélectionner

$query = "SELECT (systeme.SystemNo LIKE '".$rech."' OR systeme.SystemName LIKE '".$rech."' OR systeme.SiteName LIKE '".$rech."' OR systeme.AddressLine1 LIKE '".$rech."' OR systeme.PostCode LIKE '".$rech."' OR systeme.Town LIKE '".$rech."' OR systeme.FSESurname LIKE '".$rech."' OR systeme.SerialNo like '".$rech."') AND (systeme.SystemNo LIKE '".$rech2."' OR systeme.SystemName LIKE '".$rech2."' OR systeme.SiteName LIKE '".$rech2."' OR systeme.AddressLine1 LIKE '".$rech2."' OR systeme.PostCode LIKE '".$rech2."' OR systeme.Town LIKE '".$rech2."' OR systeme.FSESurname LIKE '".$rech2."' OR systeme.SerialNo like '".$rech2."') AND (systeme.SystemNo LIKE '".$rech3."' OR systeme.SystemName LIKE '".$rech3."'OR systeme.SiteName LIKE '".$rech3."' OR systeme.AddressLine1 LIKE '".$rech3."' OR systeme.PostCode LIKE '".$rech3."' OR systeme.Town LIKE '".$rech3."' OR systeme.FSESurname LIKE '".$rech3."' OR systeme.SerialNo like '".$rech3."') FROM systeme INNER JOIN contrat ON systeme.SystemNo = contrat.SystemNo WHERE contrat.ContractEndDate > date_sub(now(), interval 8 month)";
Merci !!!!

Re: Join + where

par or 1 » 02 mars 2021, 21:46

il faut un seul where donc commencer par
INNER JOIN contrat ON systeme.SystemNo = contrat.SystemNo WHERE contrat.ContractEndDate > date_sub(now(), interval 8 month)
et ajouter le reste des conditions.

Join + where

par Figuedi » 02 mars 2021, 21:39

Bonjour,

Cette requête fonctionne parfaitement

Code : Tout sélectionner

$query = "SELECT * FROM systeme where ( SystemNo LIKE '".$name."' OR SystemName LIKE '".$name."' OR SiteName LIKE '".$name."' OR AddressLine1 LIKE '".$name."' OR PostCode LIKE '".$name."' OR Town LIKE '".$name."' OR FSESurname LIKE '".$name."' OR SerialNo like '".$name."') AND (SystemNo LIKE '".$name2."' OR SystemName LIKE '".$name2."' OR SiteName LIKE '".$name2."' OR AddressLine1 LIKE '".$name2."' OR PostCode LIKE '".$name2."' OR Town LIKE '".$name2."' OR FSESurname LIKE '".$name2."' OR SerialNo like '".$name2."') AND (SystemNo LIKE '".$name3."' OR SystemName LIKE '".$name3."'OR SiteName LIKE '".$name3."' OR AddressLine1 LIKE '".$name3."' OR PostCode LIKE '".$name3."' OR Town LIKE '".$name3."' OR FSESurname LIKE '".$name3."' OR SerialNo like '".$name3."')";
la requête fonctionne également

Code : Tout sélectionner

SELECT systeme.* FROM systeme INNER JOIN contrat ON systeme.SystemNo = contrat.SystemNo WHERE contrat.ContractEndDate > date_sub(now(), interval 8 month)
si je fusionne les deux comme ceci patatras ça ne marche pas

Code : Tout sélectionner

$query = "SELECT * FROM systeme where ( SystemNo LIKE '".$name."' OR SystemName LIKE '".$name."' OR SiteName LIKE '".$name."' OR AddressLine1 LIKE '".$name."' OR PostCode LIKE '".$name."' OR Town LIKE '".$name."' OR FSESurname LIKE '".$name."' OR SerialNo like '".$name."') AND (SystemNo LIKE '".$name2."' OR SystemName LIKE '".$name2."' OR SiteName LIKE '".$name2."' OR AddressLine1 LIKE '".$name2."' OR PostCode LIKE '".$name2."' OR Town LIKE '".$name2."' OR FSESurname LIKE '".$name2."' OR SerialNo like '".$name2."') AND (SystemNo LIKE '".$name3."' OR SystemName LIKE '".$name3."'OR SiteName LIKE '".$name3."' OR AddressLine1 LIKE '".$name3."' OR PostCode LIKE '".$name3."' OR Town LIKE '".$name3."' OR FSESurname LIKE '".$name3."' OR SerialNo like '".$name3."')INNER JOIN contrat ON systeme.SystemNo = contrat.SystemNo WHERE contrat.ContractEndDate > date_sub(now(), interval 8 month";
Je continue à cherche de mon côté, mais j'avouerai avoir besoin d'aide.