Rechercher tout

Eléphant du PHP | 424 Messages

16 janv. 2007, 14:25

Bonjour et bonne année,

J'ai créé une page de recherche mais je n'arrive pas à effectuer une chose.

comment rechercher tous les enregistrements de ma base ? je crois que c'est % mais je n'arrive pas à la placer correctement dans mon code.

Merci pour votre aide
Youpi Youpi Yo !

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 janv. 2007, 14:35

Quelle requête as-tu utilisée ?
Pour qu'on puisse t'aider à la corriger...

Eléphant du PHP | 424 Messages

16 janv. 2007, 14:49

Voici comment j'affiche mes résultats :
<?php
$nbre = $_POST["piece"];	
$cate = $_POST["categorie"] ; 
	 				 
	  $sqldip = 'select tb_bien.id_gallery, tb_bien.id_type_bien, tb_bien.id_secteur, tb_bien.date, tb_bien.id_categorie, tb_bien.description, tb_bien.nbre_piece, tb_bien.superficie, tb_bien.etage, tb_bien.netage, tb_bien.prix, tb_bien.reference, tb_bien.photo, tb_secteur_bien.id_secteur, tb_secteur_bien.ville,
	   tb_secteur_bien.cp, tb_gallery.id_photo, tb_gallery.id_gallery, tb_gallery.url, tb_gallery.url1, tb_gallery.url2, tb_gallery.url3,
	   tb_categorie_bien.id_categorie, tb_categorie_bien.categorie,tb_type_bien.id_type_bien,tb_type_bien.type from tb_bien, tb_gallery, tb_categorie_bien,tb_secteur_bien, tb_type_bien  where tb_bien.id_type_bien = tb_type_bien.id_type_bien and tb_gallery.id_gallery = tb_bien.id_gallery and tb_bien.id_secteur = tb_secteur_bien.id_secteur and tb_bien.nbre_piece LIKE '%$nbre%' and tb_bien.id_categorie = '.$cate.' and tb_bien.id_categorie = tb_categorie_bien.id_categorie';
	  
//$sqldip = 'select * from tb_bien order by date DESC';
   // $nbsql += 1;
	if ($resselectdip = mysql_query($sqldip)) {
		while ($selectdip = mysql_fetch_array($resselectdip))
         {
Merci pour votre aide
Youpi Youpi Yo !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 14:58

$sqldip = 'select ... and tb_bien.nbre_piece LIKE '%$nbre%' ... ';
Attention à ne pas mélanger les apostrophes qui délimitent la chaine en php et celles qui devraient être utilisées pour délimiter la chaine en sql
$sqldip = 'select ... and tb_bien.nbre_piece LIKE \'%'.$nbre.'%\' ...';
Ceci dit, le "LIKE %" n'a d'intérêt que sur des chaines de caractères dont on ne connait qu'une partie. Pour un nombre, ou une chaine complète, un simple égal est suffisant :
$sqldip = 'select ... and tb_bien.nbre_piece = '.$nbre.' ...';
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 2937 Messages

16 janv. 2007, 15:01

Salut!

Un conseil, tape les noms des commandes en SQL en majuscules: la requête sera plus lisible. :wink:

Normalement, pour chercher un mot, on emploie une requête ce de genre:
SELECT colonne FROM table WHERE colonne LIKE '%mot%'
Cette requête, on ne peut plus simpliste, ne te permettra que chercher un seul mot ou une expression exacte.

Eléphant du PHP | 424 Messages

16 janv. 2007, 15:08

Ca ne fonctionne pas !

Impossible d'afficher les résultats.
Youpi Youpi Yo !

Eléphant du PHP | 424 Messages

16 janv. 2007, 15:19

C'est bon ca fonctionne erreur de frappe de ma part ::: !!!! :shock:

Merci pour votre aide
Youpi Youpi Yo !

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

16 janv. 2007, 15:23

oici ma suggestion, en utilisant les alias de tables pour plus de clarté
et en corrigeant ton utilisation des apostrophes :
$sqldip = "SELECT B.id_gallery, B.id_type_bien, B.id_secteur, B.date, B.id_categorie, B.description,
                  B.nbre_piece, B.superficie, B.etage, B.netage, B.prix, B.reference, B.photo,
                  S.id_secteur, S.ville, S.cp,
                  G.id_photo, G.id_gallery, G.url, G.url1, G.url2, G.url3,
                  C.id_categorie, C.categorie, T.id_type_bien, 
                  T.type
           FROM   tb_bien B, tb_gallery G, tb_categorie_bien C, tb_secteur_bien S, tb_type_bien T
           WHERE  B.id_type_bien = T.id_type_bien
             AND  G.id_gallery = B.id_gallery
             AND  B.id_secteur = S.id_secteur
             AND  B.nbre_piece LIKE '%".$nbre."%'
             AND  B.id_categorie = ".$cate."
             AND  B.id_categorie = C.id_categorie";

Eléphant du PHP | 424 Messages

16 janv. 2007, 15:51

Je ne savais pas qu'on pouvait procéder ainsi.

Merci :!
Youpi Youpi Yo !