Problème de SELECT avec IF

[Résolu]
Signaler
Messages postés
21
Date d'inscription
mardi 16 janvier 2007
Statut
Membre
Dernière intervention
5 septembre 2011
-
Messages postés
21
Date d'inscription
mardi 16 janvier 2007
Statut
Membre
Dernière intervention
5 septembre 2011
-
Bonjour,

Svp s'il y a un expert en PHP MYSQL, je souhaiterais faire valider cette requête c'est bizarre elle ne me donne aucun résultat.

Normalement le principe est de récupérer des infos dans une 1ere table et les rechercher dans une 2ème :

<?php
// requête qui va charger les éléments à rechercher dans la base :
$sql006='SELECT id, Adresse_messagerie, champ1, champ2, champ3, champ4, champ5, champ6, champ7, champ8 FROM table1 WHERE 1=1';
$req006=mysql_query($sql006);
$data006=mysql_fetch_array($req006) or die('Erreur SQL !
'.$sql006.'
'.mysql_error());

// la requête qui récupère les données de la 1ere table et va compter les lignes vérifiant les critères dans la 2ème :
$sql008="SELECT count(*) FROM table2 WHERE 
IF('".$data006['Champ1']."'!='', Champ1 like '%".$data006['Champ1']."%','')
and IF('".$data006['Champ2']."'!='', Champ2='".mysql_escape_string($data006['Champ2'])."','')
and IF('".$data006['Champ3']."'!='', Champ3 like '%".$data006['Champ3']."%','')
and IF('".$data006['champ4']."'!='', champ4 ='".mysql_escape_string($data006['champ4'])."','')
and IF('".$data006['champ5']."'!='', champ5='".mysql_escape_string($data006['champ5'])."','')
and IF('".$data006['champ6']."'!='', champ6 like '%".$data006['champ6']."%','')
and IF('".$data006['champ7']."'!='', champ7 like '%".$data006['champ7']."%','')
and IF('".$data006['champ8']."'!='', champ8 like '%".$data006['champ8']."%','')";

// exécution
$req008=mysql_query($sql008) or die('Erreur SQL !
'.$sql008.'
'.mysql_error());
$data008=mysql_fetch_array($req008);
echo $data008[0].'

';


// la requête qui recherche les données dans la 2eme table :
$sql007="SELECT id, Adresse_messagerie, champ1, champ2, champ3, champ4, champ5, champ6, champ7, champ8 WHERE 
IF('".$data006['Champ1']."'!='', Champ1 like '%".$data006['Champ1']."%','')
and IF('".$data006['Champ2']."'!='', Champ2='".mysql_escape_string($data006['Champ2'])."','')
and IF('".$data006['Champ3']."'!='', Champ3 like '%".$data006['Champ3']."%','')
and IF('".$data006['champ4']."'!='', champ4 ='".mysql_escape_string($data006['champ4'])."','')
and IF('".$data006['champ5']."'!='', champ5='".mysql_escape_string($data006['champ5'])."','')
and IF('".$data006['champ6']."'!='', champ6 like '%".$data006['champ6']."%','')
and IF('".$data006['champ7']."'!='', champ7 like '%".$data006['champ7']."%','')
and IF('".$data006['champ8']."'!='', champ8 like '%".$data006['champ8']."%','')";

// execution
$req007=mysql_query($sql007) or die('Erreur SQL !
'.$sql007.'
'.mysql_error());

?>


Vous voyez un problème particulier ? J'ai raté quelque chose ?

Merci pour votre aide
Cordialement

Google never dies...

2 réponses

Messages postés
21
Date d'inscription
mardi 16 janvier 2007
Statut
Membre
Dernière intervention
5 septembre 2011

C'est bon c'est réglé grâce à un collègue .
En fait il fallait utiliser CASE et non pas IF dans SELECT

La syntaxe est très simple et c'est tant mieux

Merci Bcp
Cordialement


Google never dies...
Messages postés
21
Date d'inscription
mardi 16 janvier 2007
Statut
Membre
Dernière intervention
5 septembre 2011

PS : J'ai un doute surtout au niveau de la syntaxe du SELECT incluant le IF...

En tous cas aucune SQL error ne s'affiche


Google never dies...