UNION SELECT COUNT(*)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : UNION SELECT COUNT(*)

Re: UNION SELECT COUNT(*)

par Ganesh » 18 juil. 2010, 17:54

Et cela correspond à quelle requête ?
Une fois réponse donnée à cette question, il faudra probablement nommer (donner un alias) la sous-requête (ou requête imbriquée) qui est utilisée.

P.S.: Sur un serveur de développement, incorporé la requête au message d'erreur, cela facilite le débogage.

Re: UNION SELECT COUNT(*)

par zenso » 18 juil. 2010, 17:23

ok, par contre, l'affaire n'est pas résolue car ça m'inscrit :"Erreur : Every derived table must have its own alias"

Re: UNION SELECT COUNT(*)

par zenso » 18 juil. 2010, 10:59

Merci Ganesh d'avoir répondu aussi vite !

Comme tu dois t'en douter, je suis débutant en php/mysql et je ne vois pas ce qu'il faut mettre comme paramètre dans la parenthèse. $link ?

Re: UNION SELECT COUNT(*)

par Ganesh » 18 juil. 2010, 10:33

Bonjour,

Je pense que l'erreur se situe plutôt au niveau de cette ligne:
$link = mysqli_connect ($host,$user,$pass,$db) or die ('Erreur : '.mysqli_error() ); 
Le message d'erreur est clair, la fonction mysqli_error() attend un paramètre et il n'y en a pas dans la ligne ci-dessus.

UNION SELECT COUNT(*)

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))