par
zenso » 18 juil. 2010, 10:24
Bonjour à tous !
J'ai un soucis avec ma boucle UNION SELECT COUNT(*) qui ne me prend pas en compte les autres mots du tableau $tab. Ceci dans le but de finaliser mon moteur de recherche et d'afficher le résultat sur plusieurs pages. Il m'indique :"Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp...recherche.php on line 277" qui correspond a la ligne $result juste après la boucle COUNT. Par avance, merci de votre aide.
$mots = str_replace("\"", " ", $mots);
$mots = str_replace(",", " ", $mots);
$mots = str_replace(":", " ", $mots);
//echo "$mots";
$tab=explode(" " , $mots); // on place les differents mots dans un tableau
$nb=count($tab); // on compte le nbr d'élément du tableau.
$sql="select * from film where titre like \"%$tab[0]%\" "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$sql.="UNION select * from film where titre like \"%$tab[$i]%\" "; // on boucle pour integrer tous les mots dans la requête
}
$link = mysqli_connect ($host,$user,$pass,$db) or die ('Erreur : '.mysqli_error() );
$nombre = 5; // on va afficher 5 résultats 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 (SELECT count(*) from film where titre like \"%$tab[0]%\" "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$select.="UNION select count(*) from film where titre like \"%$tab[$i]%\" "; // on boucle pour integrer tous les mots dans la requête
}
$select.=")";
$result = mysqli_query($link,$select) or die ('Erreur : '.mysqli_error() );
$row = mysqli_fetch_row($result);
$total = $row[0];
$select = $sql." limit ".$limite.",".$nombre;
$result = mysqli_query($link,$select) or die ('Erreur : '.mysqli_error() );
if($total) {
while($row = mysqli_fetch_array($result))
Bonjour à tous !
J'ai un soucis avec ma boucle UNION SELECT COUNT(*) qui ne me prend pas en compte les autres mots du tableau $tab. Ceci dans le but de finaliser mon moteur de recherche et d'afficher le résultat sur plusieurs pages. Il m'indique :"Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\wamp...recherche.php on line 277" qui correspond a la ligne $result juste après la boucle COUNT. Par avance, merci de votre aide.
[php]
$mots = str_replace("\"", " ", $mots);
$mots = str_replace(",", " ", $mots);
$mots = str_replace(":", " ", $mots);
//echo "$mots";
$tab=explode(" " , $mots); // on place les differents mots dans un tableau
$nb=count($tab); // on compte le nbr d'élément du tableau.
$sql="select * from film where titre like \"%$tab[0]%\" "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$sql.="UNION select * from film where titre like \"%$tab[$i]%\" "; // on boucle pour integrer tous les mots dans la requête
}
$link = mysqli_connect ($host,$user,$pass,$db) or die ('Erreur : '.mysqli_error() );
$nombre = 5; // on va afficher 5 résultats 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 (SELECT count(*) from film where titre like \"%$tab[0]%\" "; //on prépare la requête SQL.
for($i=1 ; $i<$nb; $i++)
{
$select.="UNION select count(*) from film where titre like \"%$tab[$i]%\" "; // on boucle pour integrer tous les mots dans la requête
}
$select.=")";
$result = mysqli_query($link,$select) or die ('Erreur : '.mysqli_error() );
$row = mysqli_fetch_row($result);
$total = $row[0];
$select = $sql." limit ".$limite.",".$nombre;
$result = mysqli_query($link,$select) or die ('Erreur : '.mysqli_error() );
if($total) {
while($row = mysqli_fetch_array($result))
[/php]