Syntaxe requete
ladj59
Messages postés
322
Statut
Membre
-
macgawel Messages postés 676 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 ] . "%'";
}
}
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 ] . "%'";
}
}
A voir également:
- Syntaxe requete
- La syntaxe du nom de fichier de répertoire ou de volume est incorrecte ✓ - Forum Windows 10
- Trouver erreur de syntaxe fichier txt pix ✓ - Forum Windows
- Trouver erreur de syntaxe fichier txt ✓ - Forum PHP
- Impossible d'ouvrir un fichier txt avec Python ✓ - Forum Python
- Syntaxe après xcopy pour indiquer le répertoire courant - Forum Autoit / batch
1 réponse
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.
Si je ne me trompe pas, tu te retrouves avec un OR AND, et ce n'est pas bon...
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...