Requete

ghisco2013 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
je souhaiterai rechercher des informations dans une base de données en php en fonction de la date debut et fin comment faire? merci pour votre aide

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour ( si si ... on commence pas ça quand on est poli !! )

    Il te faut faire un formulaire.
    https://www.commentcamarche.net/contents/493-formulaires-html-cours-et-exemples

    Récupérer les données de ce formulaire (via la méthode POST de préférence)
    https://www.commentcamarche.net/contents/793-php-recuperation-de-donnees

    NB: Pour récupérer proprement une variable POST, il faut utiliser la méthode ternaire et la fonction ISSET ( ou EMPTY)
    Exemple :
    $datedebut = !empty($_POST['datedebut'])?$_POST['datedebut']:NULL;
    $datefin       = !empty($_POST['datefin'])?$_POST['datefin']:NULL;
    


    Injecter ensuite ces variables dans une requête :
    par exemple :
    $sql = "SELECT *
    FROM matable
    WHERE monchampdate BETWEEN '$datedebut' AND '$datefin' ";
    


    Lancer la requête via PDO ou Mysqli_*
    (bien entendu.. il faut que tu te connectes à ta BDD....)
    https://www.commentcamarche.net/faq/27489-pdo-une-autre-facon-d-acceder-a-vos-bases-de-donnees

    0
    1. kolm3 Messages postés 21 Statut Membre
       
      Ta solution comporte une énorme faille de sécurité (injection SQL).
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831 > kolm3 Messages postés 21 Statut Membre
         
        C'est sûr. ..
        j'ai juste repris son code.... la flemme. .. :-)
        0
  2. kolm3 Messages postés 21 Statut Membre
     
    Type de requête à éxecuter :
    SELECT *
    FROM ma_table
    WHERE (ton_champ_date BETWEEN '2015-10-10' AND '2016-10-10');


    Exécution de la requête avec PDO :
    $sql = "SELECT *
            FROM ma_table
            WHERE (ton_champ_date BETWEEN :datedebut AND :datefin) ;";
    $stmt = $instancePDO->prepare($sql);
    $stmt->execute(array( ':datedebut'  => $datedebut,
                          ':datefin'    => $datefin ));
    
    $result = $stmt->fetch(PDO::FETCH_OBJ);

    Il faut déjà avoir une connection PDO faite :
    $instancePDO= new PDO('mysql:host=localhost;dbname=test', $user, $pass);
    


    Exécution de la requête avec MySQLi :
    $sql = "SELECT *
            FROM ma_table
            WHERE (ton_champ_date BETWEEN :datedebut AND :datefin) ;";
    $stmt = $instanceMysqli->prepare($sql);
    
    // On met ss car c'est deux string (i=string, d=double, s=string)
    $stmt->bind_param('ss', $datedebut, $datefin);
    
    $stmt->execute();
    $result = $stmt->get_result();

    Il faut déjà avoir une connection MySQLi faite :
    $instanceMysqli= new mysqli('localhost', 'my_user', 'my_password', 'my_db');
    0