IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Moteur de recherche


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut Moteur de recherche
    salut a tous voila mon but ultime lol, je voudrais etre capable de selectionner plusieurs options dans plusieurs liste deroulante et une fois que je clique sur le bouton envoyer cela m'affiche un tableau avec les info correspondante qui sont dans ma bdd. Par exemple, je choisi la marque, le modele, l'energie, le prix, le kilometrage et en cliquant sur le bouton envoyer cela m'affiche les voitures correspondant a ses infos. Pouvez vous m'eclairer sur le chemin a suivre svp

    voici mon code actuel qui doit avoir pas mal d'erreur meme si il m'affiche bien mes liste deroulante pour l'instant
    sachant aussi que la liste deroulante 'marque' est lier a la liste deroulante 'modele' (quandd je choisi une marque cela ne m'affiche que les modele correspondant dans la liste modele)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
     
     
    <?php
    //connection a la bdd et creation de la 1ere liste deroulante
    include ("connexion.php3");
     
    $marques=mysql_query("SELECT marque FROM vehicules GROUP BY marque");
     
    echo '<form action="#" method="get">';
    echo '<select onchange="submit();" name="marque">';
    while($result=mysql_fetch_assoc($marques)){
    	    echo'<option value="'.$result['marque'].'">'.$result['marque'].'</option>';
     
    }
    echo '</select>';
    echo '</form>';
     
    //si séléction d'une marque, affichage de liste déroulante des modèles associés à la marque 
    if (isset($_GET['marque'])){
        $modeles=mysql_query("SELECT modele FROM vehicules where marque='".$_GET['marque']."' GROUP BY modele");
     
        echo'<select>';
        while($result=mysql_fetch_assoc($modeles)){
            echo'<option value="'.$result['modele'].'">'.$result['modele'].'</option>';
     
        }
    echo '</select>';
    }else{
        echo 'Selectionner une marque pour choisir un modele'; 
    }
    ?>
    <br /><br />
     
    <?php
    //Liste deroulante pour l'energie
    $energie=mysql_query("SELECT DISTINCT energie FROM vehicules GROUP BY energie");
     
    echo'<select>';
    echo '<form action="#" method="get">';
    while($result=mysql_fetch_assoc($energie)){
    	    echo'<option value="'.$result['energie'].'">'.$result['energie'].'</option>';
     
     
    }
     
    mysql_close();
    ?>
     
    <!-- creation des listes deroulantes avec infos en dure -->
     
     
    <form name="km_mini" method="post" >
    <select class="km_mini" name="km_mini">
    <option value=" ">Km Mini</option>
    <option value="3000">- de 3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    </select>
    </form>
    <br /><br />
    <form name="km_maxi" method="post" >
    <select class="km_maxi" name="km_maxi">
    <option value=" ">Km Maxi</option>
    <option value="3000">3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">+ de 10000</option>
    </select>
    </form>
    <br />
    <form name="prix_mini" method="post" >
    <select class="prix_mini" name="prix_mini">
    <option value=" ">Prix Mini</option>
    <option value="3000">- de 3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    </select>
    </form>
    <br />
    <form name="prix_maxi" method="post" >
    <select class="prix_maxi" name="prix_maxi">
    <option value=" ">Prix Maxi</option>
    <option value="3000">3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    <option value="15000">15000</option>
    <option value="20000">+ de 20000</option>
    <br />
    </select>
    </form>
     
    <form name="envoyer" method="post" action="traitement.php3">
    <input type="submit" name="submit" value="Envoyer">
    </form>
    voila pour afficher les listes deroulantes et voila ce que je tente sur la page traitement.php3 (je sais qu'il y a beaucoup d'erreur mais je suis un noob de chez noob) pour les recuperer et afficher un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
     
    $_SESSION['marque'] = $_POST['marque'];
    $_SESSION['modele'] = $_POST['modele'];
    $_SESSION['energie'] = $_POST['energie'];
    $_SESSION['km_mini'] = $_POST['km_mini'];
    $_SESSION['km_maxi'] = $_POST['km_maxi'];
    $_SESSION['prix_mini'] = $_POST['prix_mini'];
    $_SESSION['prix_maxi'] = $_POST['prix_maxi'];
     
    $sql= 'SELECT * FROM vehicule WHERE ';
    if (isset($_SESSION['marque'])&&($_SESSION['marque'])!="")  
       {
         $sql .= ' AND marque="'.$_SESSION['marque'].'" ';
       }
     
    if (isset($_SESSION['modele'])&&($_SESSION['model'])!="")  
       {
         $sql .= ' AND modele="'.$_SESSION['modele'].'" ';
       }
     
    if (isset($_SESSION['energie'])&&($_SESSION['energie'])!="")  
       {
         $sql .= ' AND energie="'.$_SESSION['energie'].'" ';
       }
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $request = "SELECT * FROM vehicules WHERE ";
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 10000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 3000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $request .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $result = mysql_query($request);
     
              // ensuite traitement classique pour affichage des résultats
         }
     
    // Création du haut du tableau
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>
    voila svp aidez moi je commence a etre serieusement perdu la dedans

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as un problème au niveau des "AND"

    avec ce que tu as écris cela donnerait :
    SELECT * FROM vehicule WHERE AND marque= xxxxxx

    Voila ce que tu peux faire en utilisant un tableau et implode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    $sql= 'SELECT * FROM vehicule';
    if (isset($_SESSION['marque'])&&($_SESSION['marque'])!="")  
       {
         $where[] = "marque='".$_SESSION['marque']."'";
       }
     
    if (isset($_SESSION['modele'])&&($_SESSION['model'])!="")  
       {
         $where[] = "modele='".$_SESSION['modele']."'";
       }
     
    if (isset($where)) {
     $sql .= " WHERE " . implode(' AND ', $where);
    }
    Attention, si tu veux utiliser une session pour conserver des choix, il faut un session_start() au début de ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    salut,
    c'est un peux bordelique tout tes <form></form> tu devrais n'en faire qu'un seul pour tes liste et ton bouton submit cela évitera pas mal de soucis.
    et de plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cho '<form action="#" method="get">';
    while($result=mysql_fetch_assoc($energie)){
    	    echo'<option value="'.$result['energie'].'">'.$result['energie'].'</option>';
    tu as un peu oublier de fermer ta boucle et ton </select>
    la vie n'est pas cirrhose des foies ...

    Avant de poster un message Rechercher n'est pas qu'une option.
    FAQ Web - Tuto Web

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
    session_start();
     
    $_SESSION['marque'] = $_POST['marque'];
    $_SESSION['modele'] = $_POST['modele'];
    $_SESSION['energie'] = $_POST['energie'];
    $_SESSION['km_mini'] = $_POST['km_mini'];
    $_SESSION['km_maxi'] = $_POST['km_maxi'];
    $_SESSION['prix_mini'] = $_POST['prix_mini'];
    $_SESSION['prix_maxi'] = $_POST['prix_maxi'];
     
     
    $sql= 'SELECT * FROM vehicule';
    if (isset($_SESSION['marque'])&&($_SESSION['marque'])!="")  
       {
         $where[] = "marque='".$_SESSION['marque']."'";
       }
     
    if (isset($_SESSION['modele'])&&($_SESSION['model'])!="")  
       {
         $where[] = "modele='".$_SESSION['modele']."'";
       }
    if (isset($_SESSION['energie'])&&($_SESSION['energie'])!="")  
       {
         $where[] = "energie='".$_SESSION['energie']."'";
       }
     
    if (isset($where)) {
     $sql .= " WHERE " . implode(' AND ', $where);
    }
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $request = "SELECT * FROM vehicules WHERE ";
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 10000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 3000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $request .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $result = mysql_query($request);
     
              // ensuite traitement classique pour affichage des résultats
         }
     
    // Création du haut du tableau
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>

    Merci SABOTAGE, donc j'ai bien changer ce que tu ma conseillé mais je ne suis pas sur de tout comprendre :/ peu tu m'expliquer un peu plus stp

    Merci a toi aussi Vil'Coyote en fait je n'arrive pas a tout mettre dans un seul form car mes 2 premieres liste deroulante sont lier et quand j'essai de faire un form unique bas ca marche pas T-T
    sinon ma boucle et mon select sont fermé juste en dessous normalement

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je recolte tous les criteres dans un tableau $where et je rassemble tout avec implode() dans la requete
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    ok merci, je comprend mieux mais ca bug toujours lol je m'en sort vraiment pas la dedans j'ai peu etre vue grand pour commencer mais j'aimerai bien le terminer

    sinon j'ai fait 1 seul form au lieu de tous ceux d'avant, comme ca c'est effectivement plus clair

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu pourrais nous en dire un peu plus que "ca bug" parce qu'on ne connait toujours pas ton probleme en fait.
    (et nous donner le code actuel aussi).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    oui c'est vrai désolé mon code actuel


    voila pour list.php3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
     
    <?php
    //connection a la bdd et creation de la 1ere liste deroulante
    include ("connexion.php3");
     
    $marques=mysql_query("SELECT marque FROM vehicules GROUP BY marque");
     
    echo '<form action="#" method="get">';
    echo '<select onchange="submit();" name="marque">';
    while($result=mysql_fetch_assoc($marques)){
    	    echo'<option value="'.$result['marque'].'">'.$result['marque'].'</option>';
     
    }
    echo '</select>';
    echo '</form>';
     
    //si séléction d'une marque, affichage de liste déroulante des modèles associés à la marque 
    if (isset($_GET['marque'])){
        $modeles=mysql_query("SELECT modele FROM vehicules where marque='".$_GET['marque']."' GROUP BY modele");
     
        echo'<select>';
        while($result=mysql_fetch_assoc($modeles)){
            echo'<option value="'.$result['modele'].'">'.$result['modele'].'</option>';
     
        }
    echo '</select>';
    }else{
        echo 'Selectionner une marque pour choisir un modele'; 
    }
    ?>
    <br /><br />
     
    <?php
    //Liste deroulante pour l'energie
    $energie=mysql_query("SELECT DISTINCT energie FROM vehicules GROUP BY energie");
     
    echo'<select>';
    echo '<form action="#" method="get">';
    while($result=mysql_fetch_assoc($energie)){
    	    echo'<option value="'.$result['energie'].'">'.$result['energie'].'</option>';
    		}
     
    mysql_close();
    ?>
     
    <!-- creation des listes deroulantes avec infos en dure -->
     
    <form name="km_prix" method="post" >
    <select class="km_mini" name="km_mini">
    <option value=" ">Km Mini</option>
    <option value="3000">- de 3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    </select><br /><br />
    <select class="km_maxi" name="km_maxi">
    <option value=" ">Km Maxi</option>
    <option value="3000">3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">+ de 10000</option>
    </select><br /><br />
    <select class="prix_mini" name="prix_mini">
    <option value=" ">Prix Mini</option>
    <option value="3000">- de 3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    </select><br /><br />
    <select class="prix_maxi" name="prix_maxi">
    <option value=" ">Prix Maxi</option>
    <option value="3000">3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    <option value="15000">15000</option>
    <option value="20000">+ de 20000</option>
    </select><br /><br />
    </form>
     
    <form name="submit" method="post" action="traitement.php3">
    <input type="submit" name="submit" value="Envoyer">
    </form>

    voila pour traitement.php3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
    session_start();
     
    $_SESSION['marque'] = $_POST['marque'];
    $_SESSION['modele'] = $_POST['modele'];
    $_SESSION['energie'] = $_POST['energie'];
    $_SESSION['km_mini'] = $_POST['km_mini'];
    $_SESSION['km_maxi'] = $_POST['km_maxi'];
    $_SESSION['prix_mini'] = $_POST['prix_mini'];
    $_SESSION['prix_maxi'] = $_POST['prix_maxi'];
     
     
    $sql= 'SELECT * FROM vehicule';
    if (isset($_SESSION['marque'])&&($_SESSION['marque'])!="")  
       {
         $where[] = "marque='".$_SESSION['marque']."'";
       }
     
    if (isset($_SESSION['modele'])&&($_SESSION['model'])!="")  
       {
         $where[] = "modele='".$_SESSION['modele']."'";
       }
    if (isset($_SESSION['energie'])&&($_SESSION['energie'])!="")  
       {
         $where[] = "energie='".$_SESSION['energie']."'";
       }
     
    if (isset($where)) {
     $sql .= " WHERE " . implode(' AND ', $where);
    }
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $request = "SELECT * FROM vehicules WHERE ";
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 10000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 3000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $request .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $result = mysql_query($request);
     
              // ensuite traitement classique pour affichage des résultats
         }
     
    // Création du haut du tableau
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>
    et voila les erreur qui se produise au moment ou j'ai choisi les données sur list.php3 et que je clique sur le bouton envoyer :

    Notice: Undefined index: marque in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 12

    Notice: Undefined index: modele in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 13

    Notice: Undefined index: energie in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 14

    Notice: Undefined index: km_mini in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 15

    Notice: Undefined index: km_maxi in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 16

    Notice: Undefined index: prix_mini in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 17

    Notice: Undefined index: prix_maxi in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 18

    Veuillez sélectionner toutes les options.

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files (x86)\EasyPHP 3.0\www\traitement.php3 on line 75
    Les Voitures en vente la marque

    le modele l'energie le prix le kilometrage




    alors forcement il y a des erreurs dans le code mais je cherche a m'en sortir petit a petit, j'espere que cela vous aidera a m'aider en tout cas merci de votre patience

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour eviter les NOTICE et pour eviter de réecrire ton test pour chaque valeur, fais plutot comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $aCritere = array('marque', 'modele', 'energie');
     
    foreach ($aCritere as $critere) {
    if (isset($_POST[$critere])&&($_POST[$critere])!="")  
       {
         $_SESSION[$critere] = mysql_real_escape_string($_POST[$critere]);
         $where[] = "$critere='".$_SESSION[$critere]."'";
       }
    }
    Pour l'erreur, elle vient du fait que tu as des résidus de $request qui restent dans ton code.

    Si tu as toujours des erreurs apres les corrections, affiche ta requete et mes erreurs mysql avec mysql_error()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    alors j'ai fait exactement comme tu as dit et j'ai exactement les mm erreurs :/

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
    session_start();
     
    $_SESSION['marque'] = $_POST['marque'];
    $_SESSION['modele'] = $_POST['modele'];
    $_SESSION['energie'] = $_POST['energie'];
    $_SESSION['km_mini'] = $_POST['km_mini'];
    $_SESSION['km_maxi'] = $_POST['km_maxi'];
    $_SESSION['prix_mini'] = $_POST['prix_mini'];
    $_SESSION['prix_maxi'] = $_POST['prix_maxi'];
     
     
    $sql= 'SELECT * FROM vehicule';
     
    $aCritere = array('marque', 'modele', 'energie');
     
    foreach ($aCritere as $critere) {
    if (isset($_POST[$critere])&&($_POST[$critere])!="")  
       {
         $_SESSION[$critere] = mysql_real_escape_string($_POST[$critere]);
         $where[] = "$critere='".$_SESSION[$critere]."'";
    	 echo mysql_error();
    	}
    }
     
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $request = "SELECT * FROM vehicules WHERE ";
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 10000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 3000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $request .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $result = mysql_query($request);
     
              echo mysql_error();
         }
     
    // Création du haut du tableau
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>
    peu etre que j'ai mal placé les mysql_error() mais en tout cas il ne m'ont pas donné plus d'info et en ce qui concerne les residu de requete comment puis je y remedier ?

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut retirer tout ca puisque c'est traiter dans le code que je t'ai donné
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $_SESSION['marque'] = $_POST['marque'];
    $_SESSION['modele'] = $_POST['modele'];
    $_SESSION['energie'] = $_POST['energie'];
    le session_start() doit etre placé au début du code.

    le echo mysql_error() doit etre placé apres le mysql_query()

    tu utilises toujours $request alors que le code corrigé construit $sql
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    alors, j'ai retiré les lignes que tu ma dit.
    le session_start() n'est pas au debut du code ?, je l'ai mis juste apres le <?php je pensai que c'etait ca le debut du code non ??
    le mysql_error() est placer apres le mysql_query() normalement et j'ai virer la requete $requete et remplacer la variable par $sql voila le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
     
    session_start();
     
    $_SESSION['km_mini'] = $_POST['km_mini'];
    $_SESSION['km_maxi'] = $_POST['km_maxi'];
    $_SESSION['prix_mini'] = $_POST['prix_mini'];
    $_SESSION['prix_maxi'] = $_POST['prix_maxi'];
     
     
     
    $sql= 'SELECT * FROM vehicule';
     
    $aCritere = array('marque', 'modele', 'energie');
     
    foreach ($aCritere as $critere) {
    if (isset($_POST[$critere])&&($_POST[$critere])!="")  
       {
         $_SESSION[$critere] = mysql_real_escape_string($_POST[$critere]);
         $where[] = "$critere='".$_SESSION[$critere]."'";
     
    	}
    }
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 10000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 3000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $sql .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $sql = mysql_query($sql);
     
              echo mysql_error();
         }
     
    // Création du haut du tableau
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>

    voila l'erreur renvoyé :

    Notice: Undefined index: km_mini in C:\Program Files (x86)\EasyPHP 3.0\www\traitement2.php3 on line 12

    Notice: Undefined index: km_maxi in C:\Program Files (x86)\EasyPHP 3.0\www\traitement2.php3 on line 13

    Notice: Undefined index: prix_mini in C:\Program Files (x86)\EasyPHP 3.0\www\traitement2.php3 on line 14

    Notice: Undefined index: prix_maxi in C:\Program Files (x86)\EasyPHP 3.0\www\traitement2.php3 on line 15

    Veuillez sélectionner toutes les options.

    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files (x86)\EasyPHP 3.0\www\traitement2.php3 on line 65

    Les Voitures en vente
    la marque le modele l'energie le prix le kmetrage

    effectivement cela ma enlever le NOTICE des premieres données

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    le session_start() doit etre avant la partie HTML.

    Pour les NOTICE restant meme principe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_POST['km_mini'])) { $_SESSION['km_mini'] = $_POST['km_mini']; }
    Pour le problème restant, c'est un problème de logique :
    dans le cas ou km_mini n'est pas rempli, tu mets une alerte au lieu de lancer la requete, mais tu lances quand meme le fetch_array et l'affichage du tableau.
    Toute cette partie devrait etre écrite dans ton else{}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    bon je sait que je suis chiant et je m'en excuse d'avance mais je suis vraiment debutant alors j'ai du mal a tout comprendre.
    En tout cas je n'ai plus le probleme de NOTICE grace au if(isset) mais quandd tu dit placer le session_start avant le code html tu parle des tableau ? parce que tout le code est sous la balise php

    dans le cas ou km_mini n'est pas rempli, tu mets une alerte au lieu de lancer la requete, mais tu lances quand meme le fetch_array et l'affichage du tableau.
    Toute cette partie devrait etre écrite dans ton else{}
    je ne vois pas trop ce que tu veux dire, pour moi quand le km_mini (et les autres) ne sont pas remplis il doit m'afficher "Veuillez sélectionner toutes les options." SINON il m'affiche le tableau, tu voudrais qu'il l'affiche quand même c'est ca ?

    voila le code ou j'en suis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
    <?php
     
     
    $sql= 'SELECT * FROM vehicule';
     
    $aCritere = array('marque', 'modele', 'energie');
     
    foreach ($aCritere as $critere) {
    if (isset($_POST[$critere])&&($_POST[$critere])!="")  
       {
         $_SESSION[$critere] = mysql_real_escape_string($_POST[$critere]);
         $where[] = "$critere='".$_SESSION[$critere]."'";
     
    	}
    }
     
    if (isset($_POST['km_mini']) && ($_POST['km_maxi']) && ($_POST['prix_mini']) && ($_POST['prix_maxi']))
    	{ 
    		$_SESSION['km_mini'] = $_POST['km_mini']; 
    		$_SESSION['km_maxi'] = $_POST['km_maxi']; 
    		$_SESSION['prix_mini'] = $_POST['prix_mini'];
    		$_SESSION['prix_maxi'] = $_POST['prix_maxi']; 
    	}
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 100000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 1000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $sql .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $sql = mysql_query($sql);
     
              echo mysql_error();
         }
     
    // Création du haut du tableau
     
    session_start();
     
    echo "<TABLE>
      <CAPTION> Les Voitures en vente </CAPTION>
      <TR>
     <TH> la marque </TH>
     <TH> le modele </TH>
     <TH> l'energie </TH>
     <TH> le prix </TH>
      <TH> le kmetrage </TH>
    </TR>";
     
    while ( $voir = mysql_fetch_array($sql))
    {
        $id_vehicule = $voir[0];
         $marque = $voir[1];
         $model = $voir[2];
         $energie = $voir[3];
         $prix = $voir[4];
         $op_km_mini = $voir[5];
    	 $op_km_maxi = $voir[6];
    	 $op_prix_mini = $voir[7];
    	 $op_prix_mini = $voir[8];
     
    echo "  <TR>
     <TH> $marque </TH>
     <TD> $modele</TD>
     <TD> $energie </TD>
     <TD> $prix </TD>
     <TD> $km </TD>
    </TR>
    ";
    }
    //fermeture tableau
    echo "</TABLE>";
     
    ?>
     
     
    <body>
    </body>
    </html>

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    parcque tt le code est sous la balise php
    non tu as les 6 premieres lignes encore

    tu voudrai qu'il l'affiche qd meme c'est ca ?
    non justement mais c'est ce qui se passe actuellement puisque ton else {} se finit avant le tableau. Il devrait se terminer apres le </table>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
    tu veu dire que je dois le placer comme ca ?? lol j'y avais meme pas pensé

    bon cool je n'ai plus d'erreur qui s'affiche avec le code suivant (merci bcp )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
     
    <?php
    session_start();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
     
    <?php
    include("connexion.php3");
     
    $sql= 'SELECT * FROM vehicule';
     
    $aCritere = array('marque', 'modele', 'energie');
     
    foreach ($aCritere as $critere) {
    if (isset($_POST[$critere])&&($_POST[$critere])!="")  
       {
         $_SESSION[$critere] = mysql_real_escape_string($_POST[$critere]);
         $where[] = "$critere='".$_SESSION[$critere]."'";
     
    	}
    }
     
    if (isset($_POST['km_mini']) && ($_POST['km_maxi']) && ($_POST['prix_mini']) && ($_POST['prix_maxi']))
    	{ 
    		$_SESSION['km_mini'] = $_POST['km_mini']; 
    		$_SESSION['km_maxi'] = $_POST['km_maxi']; 
    		$_SESSION['prix_mini'] = $_POST['prix_mini'];
    		$_SESSION['prix_maxi'] = $_POST['prix_maxi']; 
    	}
     
    if (empty($_SESSION['km_mini']) || empty($_SESSION['km_maxi']) || empty($_SESSION['prix_mini']) || empty($_SESSION['prix_maxi'])) {
     
              echo 'Veuillez sélectionner toutes les options.';
         }
     
         else {
     
              $op_km_mini = ($_SESSION['km_mini'] == 3000) ? "<=" : "=";
              $op_km_maxi = ($_SESSION['km_maxi'] == 100000) ? ">=" : "=";
              $op_prix_mini = ($_SESSION['prix_mini'] == 1000) ? "<=" : "=";
              $op_prix_maxi = ($_SESSION['prix_maxi'] == 20000) ? ">=" : "=";
     
              $sql .= "km_mini ".$op_km_mini." ".intval($_SESSION['km_mini'])." &&
              km_maxi ".$op_km_maxi." ".intval($_SESSION['km_maxi'])." &&
              prix_mini ".$op_prix_mini." ".intval($_SESSION['prix_mini'])." &&
              prix_maxi ".$op_prix_maxi." ".intval($_SESSION['prix_maxi']);
     
              $sql = mysql_query($sql);
     
              echo mysql_error();
     
     
    			echo "<TABLE>
      			<CAPTION> Les Voitures en vente </CAPTION>
      			<TR>
     			<TH> la marque </TH>
     			<TH> le modele </TH>
     			<TH> l'energie </TH>
     			<TH> le prix </TH>
      			<TH> le kmetrage </TH>
    			</TR>";
     
    			while ( $voir = mysql_fetch_array($sql))
    			{
       				$id_vehicule = $voir[0];
         			$marque = $voir[1];
         			$model = $voir[2];
         			$energie = $voir[3];
         			$prix = $voir[4];
         			$op_km_mini = $voir[5];
    	 			$op_km_maxi = $voir[6];
    	 			$op_prix_mini = $voir[7];
    	 			$op_prix_mini = $voir[8];
     
    			echo "  <TR>
     			<TH> $marque </TH>
     			<TD> $modele</TD>
     			<TD> $energie </TD>
     			<TD> $prix </TD>
     			<TD> $km </TD>
    			</TR>
    			";
    			}
     
    			echo "</TABLE>";
    	 }
    ?>
     
     
    <body>
    </body>
    </html>
    par contre malgres le fait que dans ma page list.php3 j'ai selectionné les prix et les km il ne m'affiche pas le tableau mais le fameux "Veuillez sélectionner toutes les options" alors que j'ai tout saisie dans les listes deroulantes, cela peu venir du code de la page list.php3 ??

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce qu'on peut revoir ton formulaire actuel ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    je dois partir mais je te met le formulaire actuel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    <!-- creation d'un form generale regroupant toutes les listes deroulante et permettant lors de l'appui sur le bouton envoyer d'executer la page traitement.php3-->
     
     
     
    <?php
    //connection a la bdd et creation de la 1ere liste deroulante
    include ("connexion.php3");
     
    $marques=mysql_query("SELECT marque FROM vehicules GROUP BY marque");
     
    echo '<form action="#" method="get">';
    echo '<select onchange="submit();" name="marque">';
    while($result=mysql_fetch_assoc($marques)){
    	    echo'<option value="'.$result['marque'].'">'.$result['marque'].'</option>';
     
    }
    echo '</select>';
    echo '</form>';
     
    //si séléction d'une marque, affichage de liste déroulante des modèles associés à la marque 
    if (isset($_GET['marque'])){
        $modeles=mysql_query("SELECT modele FROM vehicules where marque='".$_GET['marque']."' GROUP BY modele");
     
        echo'<select>';
        while($result=mysql_fetch_assoc($modeles)){
            echo'<option value="'.$result['modele'].'">'.$result['modele'].'</option>';
     
        }
    echo '</select>';
    }else{
        echo 'Selectionner une marque pour choisir un modele'; 
    }
    ?>
    <br /><br />
     
    <?php
    //Liste deroulante pour l'energie
    $energie=mysql_query("SELECT DISTINCT energie FROM vehicules GROUP BY energie");
     
    echo'<select>';
    echo '<form action="#" method="get">';
    while($result=mysql_fetch_assoc($energie)){
    	    echo'<option value="'.$result['energie'].'">'.$result['energie'].'</option>';
    		}
     
    mysql_close();
    ?>
     
    <!-- creation des listes deroulantes avec infos en dure -->
     
    <form name="km_prix" method="post" >
    <select class="km_mini" name="km_mini">
    <option value=" ">Km Mini</option>
    <option value="3000">- de 3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    <option value="50000">50000</option>
    <option value="100000">100000</option>
    </select><br /><br />
    <select class="km_maxi" name="km_maxi">
    <option value=" ">Km Maxi</option>
    <option value="3000">3000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    <option value="50000">50000</option>
    <option value="100000">100000</option>
    <option value="100000">+ de 100000</option>
    </select><br /><br />
    <select class="prix_mini" name="prix_mini">
    <option value=" ">Prix Mini</option>
    <option value="1000">- de 1000</option>
    <option value="2000">2000</option>
    <option value="3000">3000</option>
    <option value="4000">4000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    </select><br /><br />
    <select class="prix_maxi" name="prix_maxi">
    <option value=" ">Prix Maxi</option>
    <option value="3000">3000</option>
    <option value="4000">4000</option>
    <option value="5000">5000</option>
    <option value="7000">7000</option>
    <option value="10000">10000</option>
    <option value="15000">15000</option>
    <option value="20000">+ de 20000</option>
    </select><br /><br />
    </form>
     
    <form name="submit" method="post" action="traitement2.php3">
    <input type="submit" name="submit" value="Envoyer">
    </form>
    merci encore

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    une formulaire ne renvoit que la valeur des controles qu'il contient.
    ton dernier <form> par exemple n'envoi que le bouton submit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  20. #20
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 14
    Points : 1
    Points
    1
    Par défaut
    ok je comprend mieu alors par contre quand j'essai de faire un form pour tout mettre dedans, quand je clique sur 'envoyer il ne se passe rien du tout a mon avis les 3 premieres liste mette la pagaille dans le form, y a t'il un moyen d'expliquer a mon bouton qu'il doi renvoyer toutes les données de toutes les listes ???

Discussions similaires

  1. [Info]moteur de recherche full text en environnement j2ee
    Par ddams dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 03/11/2004, 19h39
  2. comment faire ma base de donnée pour un moteur de recherche
    Par HoB dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 04/05/2004, 15h07
  3. Moteur de recherche par date
    Par Prue dans le forum ASP
    Réponses: 17
    Dernier message: 27/08/2003, 16h07
  4. [Technique] Index, comment font les moteurs de recherche ?
    Par bat dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 25/10/2002, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo