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