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
- Requete sql pix - Forum PHP
- Additions et multiplication dans des requêtes SQL ✓ - Forum MySQL
- Trouver erreur de syntaxe fichier txt - Forum Windows
- Trouver erreur de syntaxe fichier txt pix ✓ - Forum Windows
- La syntaxe du nom de fichier, de répertoire ou de volume est incorrecte - Forum Logiciels
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...