Requete

Fermé
ghisco2013 Messages postés 2 Date d'inscription mardi 28 juillet 2015 Statut Membre Dernière intervention 28 juillet 2015 - 28 juil. 2015 à 19:04
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 - 30 juil. 2015 à 16:09
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

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
29 juil. 2015 à 01:49
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
kolm3 Messages postés 17 Date d'inscription jeudi 30 juillet 2015 Statut Membre Dernière intervention 1 août 2015
Modifié par kolm3 le 30/07/2015 à 16:21
Ta solution comporte une énorme faille de sécurité (injection SQL).
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > kolm3 Messages postés 17 Date d'inscription jeudi 30 juillet 2015 Statut Membre Dernière intervention 1 août 2015
30 juil. 2015 à 16:09
C'est sûr. ..
j'ai juste repris son code.... la flemme. .. :-)
0
kolm3 Messages postés 17 Date d'inscription jeudi 30 juillet 2015 Statut Membre Dernière intervention 1 août 2015
Modifié par kolm3 le 30/07/2015 à 16:20
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