Syntaxe requete

ladj59 Messages postés 322 Statut Membre -  
macgawel Messages postés 676 Statut Membre -
Bonjour,
mon probléme est qu'avec le code suivant, quand je selectionne mon sujet puis que je tape plusieurs auteur cela ne devrait me sortir que l'article dont le sujet est celui que j'ai tapé et qui a été écrit par les auteurs que j'ai mis.
Or cela le fait mais cela me sort aussi les articles dont au moins un auteur correspond à ceux tapés avec un sujet différent de celui tapé.

ou est l'erreur??
merci

Code : PHP
$sql=mysql_query("SELECT DISTINCT sujet FROM base_physique ORDER BY sujet") or die(mysql_error());

while ($ajout = mysql_fetch_array($sql))
{

$laRequete = "SELECT * FROM base_physique WHERE sujet LIKE '%'";

$mots3 = explode(" ", $_POST['auteur']);
$mots4 = explode(",", $_SESSION['subject']);

if( isset( $_SESSION['subject'] ) && $_SESSION['subject'] != "" )
for($rangSujet = 0 ; $rangSujet < sizeof($mots4) ; $rangSujet++)
{
if($rangSujet > 0)
$laRequete .= " OR ";
$laRequete .= " AND sujet LIKE '%" . $mots4[ $rangSujet ] . "%'";
}
}

if( isset( $_POST['auteur'] ) && $_POST['auteur'] != "")
{

for( $rangAuteur = 0 ; $rangAuteur< sizeof($mots3) ; $rangAuteur++ )
{
if ( $rangAuteur > 0)
{
$laRequete .= " OR";
}
else
{
$laRequete .= " AND";
}
$laRequete .= " auteur LIKE '%" . $mots3[ $rangAuteur ] . "%'";
}
}

1 réponse

macgawel Messages postés 676 Statut Membre 89
 
Bonjour.

Quelques petits trucs :

1. Tu devrais faire un echo de ta requête, histoire de voir ce qu'elle donne (juste pour les tests ;-) )... Ca nous permettrait de mieux voir la requête que tu exécutes...
2.
if($rangSujet > 0)
$laRequete .= " OR ";
$laRequete .= " AND sujet LIKE '%" . $mots4[ $rangSujet ] . "%'"; 

Si je ne me trompe pas, tu te retrouves avec un OR AND, et ce n'est pas bon...
0