Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2006, 20h49   #1
Membre du Club
 
Avatar de djedje37et28
 
Étudiant
Inscription : septembre 2005
Messages : 220
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 220
Points : 51
Points : 51
Par défaut [Conception] Formulaire multicritères et affichages

bonsoir à tous!!!
j'aimerai savoir si quelqu'un aurait fais un formulaire multicritères avec par exemple une recherche si telle case est cochée et que celle si l est pas...
comme cette page:
http://www.netissimmo.fr/search.php

Pour l'instant j'ai fais un formulaire avec des requêtes simples portant sur un critère et j'aimerai en faire sur plusieurs critères.
avez vous un exemple de code pour faire ceci ??
merci
jérôme
djedje37et28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 20h50   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

C'est un problème d'algorithme. Prends une feuille de papier et écris les conditions de ton programme, le squelette.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 21h01   #3
Membre du Club
 
Avatar de djedje37et28
 
Étudiant
Inscription : septembre 2005
Messages : 220
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 220
Points : 51
Points : 51
oui en effet,
en gros j'y avais déja un peu réflechis:
j'ai par exemple des champs tel que pièces , chambre,surface, cave

ce que je voulais faire c est mettre par exemple un grand formulaire avec
des cases qu on peut cocher type: cave ( cocher=on veut une cave si pas cocher on prend pas en compte ce critère);pièce par exemple dans un menu déroulant on met 1,2,3 et la personne choisie sachant que 0 correspondrait a la valeur ou le parametre n est pas pris en compte.
il faut donc que je fasse une requête and du type
select * from bien where parametre 1 and parametre 2 ...
cependant le problème que j'ai c est que je sais pas comment dire qu' on doit utiliser tel ou tel parametres.
djedje37et28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 21h15   #4
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Ok, je vais te donner mon idée générique et tu te débrouilleras ensuite pour l'adapter à tes besoins :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<form method="post" action="<?php echo basename(__FILE__); ?>">
    Cave :
    <label>
        <input type="radio" name="cave" value="oui" checked="checked" /> oui
    </label>
    <label>
        <input type="radio" name="cave" value="non" /> non
    </label><br />
 
    Terrasse :
    <label>
        <input type="radio" name="terrasse" value="oui" checked="checked" /> oui
    </label>
    <label>
        <input type="radio" name="terrasse" value="non" /> non
    </label><br />
 
    <label>
        Pi&egrave;ces :
        <select name="piece">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </label><br />
    <input type="submit" value="Chercher" />
</form>
 
<?php
 
if(!empty($_POST))
{
    $parametres = array();
 
    if($_POST['cave'] == 'oui')
    {
        $parametres[] = 'cave = "oui"';
    }
 
    if($_POST['terrasse'] == 'oui')
    {
        $parametres[] = 'terrasse = "oui"';
    }
 
    if(is_numeric($_POST['piece']))
    {
        $parametres[] = 'pieces = '.intval($_POST['piece']);
    }
 
    $sql = 'SELECT id
            FROM maison
            WHERE '.implode(' AND ', $parametres);
 
    echo $sql;
}
 
?>
Le principe est d'ajouter les éléments dont tu as besoin au tableau $parametres. Ici, il peut s'agit de la présence de la cave ou de la terrasse ou encore du nombre de pièces.
Ensuite, la fonction implode() s'occupe d'assembler tous les paramètres dans la requête.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 21h27   #5
Membre du Club
 
Avatar de djedje37et28
 
Étudiant
Inscription : septembre 2005
Messages : 220
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 220
Points : 51
Points : 51
merci beaucoup mais je comprend pas un truc:
d'abord dans ton action tu fais:
Code :
?php echo basename(__FILE__); ?>"
, est ce que moi je suis obligé de le faire aussi ?
ou je mets juste l'url de la page qui va traiter car je décompose en deux pages.
sinon
quand tu marques
Code :
.intval($_POST['piece'])
intval correspond a par exemple 2,19 deviendra 2...
si je mets deja les parametres style 1,2,3 j ai pas besoin de faire ca ?
merci en tout cas, je vais m'y mettre dessus
djedje37et28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 21h31   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Tu mets le action="" que tu veux, je ne peux pas deviner ton nom de script.
Pour intval(), je te recommande vivement de le mettre. As-tu lu mon article sur les formulaires ? J'y évoque les possibilités de hacking de formulaire, c'est tellement simple à faire... Avec intval(), tu serais protégé pour ce champ-là.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 21h52   #7
Membre du Club
 
Avatar de djedje37et28
 
Étudiant
Inscription : septembre 2005
Messages : 220
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : septembre 2005
Messages : 220
Points : 51
Points : 51
merci bcp !!!!!!!!!
alors la je savais pas du tout pour le hacking.
je veux bien si t as le tps que tu me passes les liens vers tes articles.
djedje37et28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2006, 22h04   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Ma signature sert donc pour des prunes ?
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h27.


 
 
 
 
Partenaires

Hébergement Web