Salut à tous,
j'ai un problème avec une requête dans PHP.
En gros, voici le code concerné :
1 2 3 4 5 6 7 8 9 10
| $navire = $_POST['navire'];
$eta = $_POST['eta'];
$voyage = '%'.$_POST['voyage'].'%';
$nom_fichier='%'.$_SESSION['nom_fichier'].'%';
$query1 = 'SELECT distinct NAV.CODE,ESC.EXNAV,ESC.EIESC,ESC. EDPDE,ESC.ENVOY,ESC.EDPAR,ESC.EDDEP,TIERS.TLNOM,TIERS.TITIE FROM SERVAL.dbo.BRUT_ESCALE_R ESC JOIN SERVAL.dbo.BRUT_TIERS_R TIERS ON ESC.EITIE=TIERS.TITIE COLLATE FRENCH_CI_AS JOIN MANSYDSER.dbo.FICHIER_DOUANE DOUANE ON DOUANE.champ7 LIKE '.'%'.'ESC.EXNAV'.'%'.' OR ESC.EXNAV LIKE '.'%'.'DOUANE.champ7'.'%'.' COLLATE FRENCH_CI_AS LEFT JOIN MANSYDSER.dbo.TRANSCO_NAVIRE NAV ON NAV.LIBELLE=DOUANE.champ7 COLLATE FRENCH_CI_AS where DOUANE.nom_fichier like :fichier AND ESC.EXNAV like :navire AND ESC.ENVOY LIKE :voyage';
$sth=$dbh1->prepare($query1);
$sth->execute(array('fichier'=>$nom_fichier,'navire'=>$navire,'voyage'=>$voyage));
$result = $sth->fetchAll(); |
Mais la requête dans $query1 ne fonctionne pas comme je l'espérais (en jouant avec "LIKE" et "%").
Par contre quand j'écris :
$query0 = 'SELECT distinct NAV.CODE,ESC.EXNAV,ESC.EIESC,ESC. EDPDE,ESC.ENVOY,ESC.EDPAR,ESC.EDDEP,TIERS.TLNOM,TIERS.TITIE FROM SERVAL.dbo.BRUT_ESCALE_R ESC JOIN SERVAL.dbo.BRUT_TIERS_R TIERS ON ESC.EITIE=TIERS.TITIE COLLATE FRENCH_CI_AS JOIN MANSYDSER.dbo.FICHIER_DOUANE DOUANE ON DOUANE.champ7=ESC.EXNAV COLLATE FRENCH_CI_AS LEFT JOIN MANSYDSER.dbo.TRANSCO_NAVIRE NAV ON NAV.LIBELLE=DOUANE.champ7 COLLATE FRENCH_CI_AS where DOUANE.nom_fichier like :fichier AND ESC.EXNAV like :navire AND ESC.ENVOY LIKE :voyage';
ça marche correctement.
Mais étant donné que j'ai à faire das chaines de caractères qui ne sont pas toujours identiques je ne peux pas me permettre d'utiliser une égalité parfaite dans la requête !
Quelqu'un peut-il m'aider svp ?!
Partager