2 critères de recherches

Résolu
Alain -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je voudrais effectué une recherche dans ma base de donnée sql et pour effectué la recherche je voudrais un formulaire qui enverrais les 2 variable de recherche.
Est-ce possible ?
Merci

6 réponses

  1. DesTunK Messages postés 392 Statut Membre 157
     
    En gros, tu veux par exemple avec deux inputs : Nom et Prenom
    Et quand il appuie sur le bouton, ça écrit son age ?
    0
  2. Alain
     
    en fait je voudrais afficher seulement les résultats selon les critères de recherche
    0
    1. DesTunK Messages postés 392 Statut Membre 157
       
      Tu aurais un exemple que j'essaie de mieux comprendre s'il te plait ?
      0
    2. Alain
       
      dans ma base de donné j'ai nom projet date et heure je voudrais effectué une recherche et trier par nom et projet.
      exemple si nom = moi et projet = projet 1 affiche les résultats
      0
    3. DesTunK Messages postés 392 Statut Membre 157
       
      C'est faisable et très facilement.
      Il suffit que tu recupères les deux champs, et que tu mettes deux conditions dans ta requete pour vérifier les résultats, suivi d'un order by pour les mettre dans l'ordre :)
      0
    4. Alain
       
      "SELECT *
      FROM mabase
      WHERE nom LIKE (variableform1) and projet LIKE (variableform2)
      ORDER BY nom
      DESC" ;
      0
    5. Alain
       
      mais comment récupérer les variable et les amené dans les critère de recherche c'est la mon problème !!
      0
  3. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour,

    https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees
    0
  4. Alain
     
    il me manque juste à remplacer les 2 endroits après les LIKE ou il y a ceci: ??????
    <?php
      //récupération des valeurs des champs:
      //nom:
      $nom     = $_POST["nom"] ;
      //projet:
      $projet = $_POST["projet"] ;
     
        //connection au serveur:
        $cnx = mysql_connect("[/contents/523-adresse-ip localhost]", "MONLOGIN", "MONPASSWORD") ;
     
        //sélection de la base de données:
        $[/contents/372-fichier-db db] = mysql_select_db("MABASE") ;
    
    echo "<table border=\"1\">" ;
     
        //requête SQL:
        $sql = "SELECT *
           FROM timebase
           WHERE nom LIKE ?????? and projet LIKE ?????? 
           ORDER BY date 
        DESC" ;
        
     
        //exécution de la requête:
        $requete = mysql_query( $sql, $cnx ) ;
     
        //affichage des données:
        while( $result = mysql_fetch_object( $requete ) )
        {
           echo("<tr valign=\"middle\"><td width=\"200\"> ".$result->nom."</strong></td>
        <td width=\"200\"> ".$result->projet."</td>
        <td width=\"100\" align=\"center\">".$result->date."</td>
        <td width=\"80\" align=\"center\">".$result->heure." Heures</td>\n") ;
        }
    echo "</table>" ;
    echo "<br>" ;
    echo "<input type=\"button\" onClick=\"document.location.href = 'MON LIEN'\" value=\"Nouvelle fiche de temps\"></[/contents/242-introduction-au-dynamic-html-dhtml div]>" ;
    echo "<br><br>" ;
    ?>
    


    EDIT : Ajout des balises de code (la coloration syntaxique).
    Explications disponibles ici :
    https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

    Merci d'y penser dans tes prochains messages.
    .
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
          $sql = "SELECT *
             FROM timebase
             WHERE nom LIKE '%".$nom."%' and projet LIKE '%".$projet."%'
             ORDER BY date 
          DESC" ;
      
      
      0
      1. Alain > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
         
        Merci énormément c'est exactement ce que je n'arrivais pas à trouver ;)
        0
      2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > Alain
         
        Si la question est résolue..
        Merci de ne pas oublier de clôturer le sujet
        (en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

        Cordialement,
        Jordane
        0
    2. DesTunK Messages postés 392 Statut Membre 157
       
      Rien a redire, tout est là :)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Alain
     
    que ce passe t-il si le champ est vide je voudrais que ça affiche tout
    0
  7. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Pour cela .. il faut le faire autrement ...
    par exemple :
    
    $criteres = array();
    
     if($nom){
    $criteres[] = " nom LIKE '%".$nom."%' ";
    }
     if($projet){
    $criteres[] = " projetLIKE '%".$projet."%' ";
    }
    
    if(count($criteres)>0){
     $strWhere = " WHERE " . join(" AND " ,$criteres);
    }
    
    $sql = "SELECT *
           FROM timebase
           ". $strWhere ."
           ORDER BY date 
        DESC" ;
    
    


    Et pour la récupération des variables ( à faire comme ça de toutes façons pour éviter des PB de variables inexistantes... ! )
     //récupération des valeurs des champs:
      //nom:
      $nom     = isset($_POST["nom"])?$_POST["nom"] : NULL;
      //projet:
      $projet = isset($_POST["projet"])?$_POST["projet"]:NULL ;
    
    0