probléme de synthaxe
Posté : 24 sept. 2006, 18:02
Bonjour,
mon script est un script qui recupere les valeurs saisies par un utilisateur dans un formulaire qui contient un bouton à choix multiple c'est donc un script qui affiche le ou les résultats d'un moteur de recherche donc.
J'ai modifié le script pour limiter l'affichage à 1 résultat/page
un truc trés classique
or mon probléme est une erreur de syntaxe
Erreur : Erreur de syntaxe près de '= 'russie' AND (categorie = '18 25 ans' OR categorie = '25 35 an' à la ligne 1
il s'agit donc d'une erreur de synthaxe ds une des deux requetes ou les deux
mon code
mon script est un script qui recupere les valeurs saisies par un utilisateur dans un formulaire qui contient un bouton à choix multiple c'est donc un script qui affiche le ou les résultats d'un moteur de recherche donc.
J'ai modifié le script pour limiter l'affichage à 1 résultat/page
un truc trés classique
or mon probléme est une erreur de syntaxe
Erreur : Erreur de syntaxe près de '= 'russie' AND (categorie = '18 25 ans' OR categorie = '25 35 an' à la ligne 1
il s'agit donc d'une erreur de synthaxe ds une des deux requetes ou les deux
mon code
<?php
require ("fonctions.php");
require ("Connect.php");
$pays = isset($_POST['pays']) ? $_POST['pays'] : '';
$categorie = isset($_POST['categorie']) ? $_POST['categorie'] : '' ;
$pays = htmlEntities(strip_tags($_POST['pays']));
{
/* On compte le nombre de catégories cochées */
$nb_cat = count($categorie);
/* On crée un tableau pour stocker les clauses */
$tableau_clauses = array();
for($i = 0; $i < $nb_cat; $i++)
{
/* On ajoute la clause dans le tableau */
$tableau_clauses[] = "categorie = '". $categorie[$i] ."'";
}
/* On va créer une chaine avec toutes les clauses stockées séparées entre elles par l'opérateur OR */
$clauses_cat = implode(" OR ", $tableau_clauses);
/* On ajoute la chaîne créée à la requête */
}
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
$nombre = 1; // on va afficher 1 résultat par page.
if (!isset($limite)) $limite = 0; // si on arrive sur la page pour la première fois
// on met limite à 0.
$path_parts = pathinfo($_SERVER['PHP_SELF']);
$page = $path_parts['basename'];
$select = "SELECT COUNT( * ) FROM fille".
"WHERE pays = '". $pays ."' ".
"AND (". $clauses_cat .");";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_row($result);
$total = $row[0];
// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
// requête SQL qui ne prend que le nombre d'enregistrements nécessaire à l'affichage.
$select = "SELECT * FROM fille".
"WHERE pays ='". $pays ."' ".
"AND (". $clauses_cat .") LIMIT ".$limite.",".$nombre.";";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
// si on a récupéré un résultat on l'affiche.
if($result) {
// début du tableau
echo '<table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u>Prénom</u></b></td>';
echo '<td bgcolor="#669999"><b><u>age</u></b></td>';
echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.
while($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td bgcolor="#CCCCCC">'.$row['prénom'].'</td>';
echo '<td bgcolor="#CCCCCC">'.$row['age'].'</td>';
echo '</tr>'."\n";
}
echo '</table>'."\n";
// fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);
if($total > $nombre) {
// affichage des liens vers les pages
echo'Pages de résultats<br>';
affichePages($nombre,$page,$total);
}
?>
voila j'ai beau cherché je ne voit pas l'erreur