Php /MySQL : Verification d'une requete avec if
Résolu/Fermé
Dounilab
Messages postés
9
Date d'inscription
samedi 9 février 2013
Statut
Membre
Dernière intervention
11 juin 2014
-
9 févr. 2013 à 17:35
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 11 févr. 2013 à 10:32
Exileur Messages postés 1475 Date d'inscription mercredi 31 août 2011 Statut Membre Dernière intervention 16 décembre 2022 - 11 févr. 2013 à 10:32
A voir également:
- Php /MySQL : Verification d'une requete avec if
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert ✓ - Forum PHP
- Mysql gratuit ou payant - Forum MySQL
1 réponse
Exileur
Messages postés
1475
Date d'inscription
mercredi 31 août 2011
Statut
Membre
Dernière intervention
16 décembre 2022
150
9 févr. 2013 à 18:09
9 févr. 2013 à 18:09
Bonjour,
Pour la comparaison de date, ta date dois être en format TIMESTAMP.
Je t'ai montré la voie, une petite recherche sur les comparaisons de date et les timestamp devrai finir de répondre à tes questions.
Cordialement
Exileur
Pour la comparaison de date, ta date dois être en format TIMESTAMP.
Je t'ai montré la voie, une petite recherche sur les comparaisons de date et les timestamp devrai finir de répondre à tes questions.
Cordialement
Exileur
9 févr. 2013 à 19:42
Pour ce qui est des conditions, il faut créer une requête, retranscrire les résultats dans un tableau puis traiter les informations dans celui ci.
9 févr. 2013 à 20:27
Merci Exileur pour ta réponse, je pense que je me suis mal exprimée au début, voici mon problème :
J'ai un formulaire d'ajout des emprunts qui contient les informations suivantes : matricule du personnel , N° Série du matériel , Date Prêt et Date retour prévu. et la condition qu'un personnel ne peut pas realiser deux emprunt à la fois.
Pae exmeple si l'utilisateur n° 1 remplit le formulaire , les données s'enregistent à la Table Emprunt ( d_emprunt , date_pret, date_retour_prevu, date_retour_exact, id_personnel, Nserie )
Je veux faire une vérification , que si ce meme utilisateur qui a le n°1 veut réliser un emprunt à la même date que son emprunt précédant , un message s'affiche pour l'informer qu'il ne peut pas réaliser son emprunt.
Voici mon code qui surement contient des erreurs car il fonctionne pas :
$id = $_POST["id"];
$datepret = $_POST["dpret"];
$dateretour = $_POST["dretour"];
$nserie = $_POST["nserie"];
$sql="select id_personnel from emprunt where id_personnel='".$id."' and date_pret BETWEEN $datepret and $dateretour "; ( je ne suis pas sur que la requete est correcte )
$data = mysql_fetch_assoc($sql);
if($data){
?>
<script language="JavaScript">
alert(" vous ne pouvez pas emprunter ");
window.location.replace("ajout_emprunt.php");
</script>
<?php
}
Cordialement
Mercii :)
9 févr. 2013 à 21:10
$sql="select * from emprunt where id_personnel='".$id."' and date_pret BETWEEN $datepret and $dateretour ";
Pense aussi à bien protéger les variables récupéré avant de les réutiliser dans ton script. Risque d'Injection SQL.
Et rajoutes des quote pour $datepret et $dateretour.
Ce qui donne (sans l'échapement de caractére)
$sql="select * from emprunt where id_personnel='".$id."' and date_pret BETWEEN '$datepret' and '$dateretour' ";
Voila.
10 févr. 2013 à 02:26
J'ai essayé ce que tu m'as dit et ça à marcher mais le problème maintenant c'est que quand un autre utilisatuer veut réaliser un emprunt , il ne peut pas je ne sais pas qu'est ce que je fais comme erreur . Voici le code complet :
<?php
session_start();
include "connx.php";
$mat = $_POST["mat"];
$dpret = $_POST["dpret"];
$dretour = $_POST["dretour"];
$nserie = $_POST["nserie"];
$sql="select id_pers from emprunt where id_pers='".$mat."' and date_pret BETWEEN '$dpret' and '$dretour'";
$data = mysql_query($sql)or die (mysql_error());
if(isset($_POST["dpret"])):
$date1 = $_POST["dpret"];
$date2 = $_POST["dretour"];
$d1 = new DateTime($date1);
$d2 = new DateTime($date2);
if ( $d1 > $d2 ):
?>
<script language="JavaScript">
alert("La date de debut doit être inferieure a la date de fin ;");
window.location.replace("ajout_emprunt.php");
</script>
<?php
endif;
endif;
if(isset ($data)):
?>
<script language="JavaScript">
alert(" vous ne pouvez pas ");
window.location.replace("ajout_emprunt.php");
</script>
<?php
endif;
$requete="insert into emprunt (id_emp,date_pret, date_retour_prevu,date_retour_exact, id_pers, Nserie) values('','$dpret','$dretour','0000-00-00','$mat','$nserie')";
$resultat=mysql_query($requete)or die (mysql_error());
if ($resultat)
{
?>
<script language="JavaScript">
alert("L'enregistrement a ete bien ajoute;");
window.location.replace("ajout_emprunt.php");// On inclut le formulaire d'identification
</script>
<?php
}
?>
Merci beaucoup :)
Cordialement
10 févr. 2013 à 10:19
$sql="select id_pers from emprunt where id_pers='".$mat."' and date_pret BETWEEN '$dpret' and '$dretour'"; ?????
Dans quel format est enregistré la date dans la base de donnée ?
As-tu essayé un mysql_fetch_array pour vérifier que les résultats de ta requête corresponde bien à ce que tu souhaites?
Je ne pense pas que le between soit une bonne solution, je m'explique :
nous sommes le 10 février.
Un utilisateur a fait un emprunt du 15 au 17 février.
Si l'utilisateur demande un nouvel emprunt du 14 au 18
puis un autre du 13 au 17 il pourra effectuer ses emprunts sans problèmes...