une requete avec UNION

une requete avec UNION - PHP - Programmation

Marsh Posté le 12-06-2007 à 11:46:17    

bonjour a tous ;
voila je veux recupere des annonces en attente d'activation dans differentes tables; et jai utilise UNION comme ceci :  
 
<?php
 
// connexion à la base de données
include("../../classe/sql.php" );
 
$req=mysql_query("SELECT flag_actif FROM appartement UNION (SELECT flag_actif FROM maison) UNION  (SELECT flag_actif FROM local) UNION  (SELECT flag_actif FROM terrain) UNION  (SELECT flag_actif FROM commerce) UNION  (SELECT flag_actif FROM bureau) UNION  (SELECT flag_actif FROM bungalow) UNION  (SELECT flag_actif FROM immeuble) WHERE flag_actif='N'" );
$rep=mysql_num_rows($req);
?>
il y a <?php echo $rep; ?> annonces actives  
 
mais ca ne veut pas marche; est ce la requete qui est mal ecrit  :??:  
merci de votre aide :p

Reply

Marsh Posté le 12-06-2007 à 11:46:17   

Reply

Marsh Posté le 12-06-2007 à 11:48:03    

1/ Faudrait savoir si c'est du PHP qui pouse problème (et c'est pas le cas) ou le SQL
2/ Si c'est le SQL, poste dans la bonne cat, et ne poste que ta requête
3/ Oui, ta requête est foireuse, ton WHERE n'a rien à foutre là


Message édité par MagicBuzz le 12-06-2007 à 11:48:50
Reply

Marsh Posté le 12-06-2007 à 11:51:25    

pourquoi je dois faire faire un where pour specifier si l'annonce est validee ou non

Reply

Marsh Posté le 12-06-2007 à 11:59:12    

oui, mais soit tu met un WHERE pour chaque select, soit tu fais un select global qui réupère tout tes union, et tu fais le where dessus. mais là, tu ne fais le where que sur la dernière clause union

Reply

Marsh Posté le 12-06-2007 à 11:59:43    

Parceque c'est pas là qu'il faut mettre le where, cf la doc mysql sur UNION. (edit : grillaid  :cry: )
 
Et faudrait revoir ton schéma aussi, parcequ'autant d'union c'est n'importe quoi. Vu ta requete, je dirais que tu devrais avoir une table "lieu" et une table "type", et pas une table par type.


Message édité par cgo2 le 12-06-2007 à 12:00:22

---------------
When it's from Finland it's good.  - Mon blog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed