Accueil > Forum > > > > limiter les réservations de mon formulaire
limiter les réservations de mon formulaire
samedi 22 octobre 2011 à 23:08:37 |
limiter les réservations de mon formulaire

ecolom
|
Bonjour,
je suis occupé à créer un formulaire de réservation pour des formations.
j'ai 6 sessions de 12 personnes maximum.
Seulement voilà, pour l'instant je passe mon temps à compter les réservations effectuées en ligne en espérant ne pas avoir une 13ème qui m'obligerait à contacter les users pour annulation.
J'aimerai adapter un compteur et dès que le nombre de personne est atteint pour une réservation, il indique un message de type popup afin d'inviter le user à choisir une autre date.
euh..par écrit c'est super mais pour le programmer c'est galère.....
Je ne vois pas trop comment inscrire un code qui vérifie dans ma Db le nombre d'inscrit.
Ci-dessous le code actuel.
SI vous avez une idée, un exemple concret, je suis preneur.
Merci pour votre aide.
Code PHP : <?php
include("./include/param.inc.php");
// Creation des variables des zones de la page
$date_encodage = mysql_real_escape_string($_REQUEST['date_encodage']);
$date_reservation = mysql_real_escape_string($_REQUEST['date_reservation']);
$nom_users = mysql_real_escape_string($_REQUEST['name_users']);
$email_users = mysql_real_escape_string($_REQUEST['email_users']);
// Verifie que les zones date de reservation etnom soient remplies
if ($_REQUEST['date_reservation'] != "" and $_REQUEST['name_users'] != "")
{
$sql1 = "SELECT * FROM int_org WHERE nom_users='$nom_users'";
$req1 = mysql_query ($sql1) or die ('erreur sql<br>'.$sql1.'<br>'.mysql_error());
//vérifie si le nombre de lignes trouvées est = 0 si oui, c'est que ce pseudo n'est pas encore utilisé => ok
if(mysql_num_rows($req1) == 0)
{
$sql2 = "INSERT INTO int_org (date_encodage,
date_reservation,
nom_users,
email_users
)
VALUES('$date_encodage',
'$date_reservation',
'$nom_users',
'$email_users'
)";
$req2 = mysql_query($sql2) or die('Erreur SQL : <br />'.$sql2);
} // fin du if pseudo existe déjà
else
{
?>
<script language="JavaScript">
alert("Une réservation existe déjà à votre nom. \n Si vous désirez changer de date, veuillez contacter Kathy \n A booking already exists in your name. \n If you want to change the date, please contact Kathy ");
window.location.replace("index.php");// On inclut le formulaire d'identification
</script>
<?php
}
} // fin du else
// Select pour preparer l affichage du contenu de la DB
$result=mysql_query("SELECT * FROM int_org order by date_reservation ASC,nom_users DESC");
$i=0;
while( $row=mysql_fetch_array($result) )
{
if($i>0)
{
echo "<tr valign=bottom>";
echo "<td bgcolor=#3333CC background='./images/strichel.gif' colspan=6 width=1 height=1></td>";
echo "</tr>";
}
{
echo "<tr height=20 valign=center>";
echo "<td align=center><font color=#333333 class=tabval> ".$row['date_reservation']."</td>";
echo "<td align=center><font color=#333333 class=tabval> ".$row['nom_users']."</td>";
echo "<td align=center><font color=#333333 class=tabval> ".$row['email_users']."</td>";
echo "<td class=tabval></td>";
echo "</tr>";
$i++;
}
}
mysql_close();
?>
|
|
dimanche 23 octobre 2011 à 01:26:14 |
Re : limiter les réservations de mon formulaire

NHenry
|
Bonjour,
Tu peux faire un SELECT :
SELECT COUNT(*) FROM MaTable WHERE MaDateSession='yyyy-mm-dd hh:mm:ss'
Ensuite, tu vérifies le résultat retourné qui contiendra le nombre de réservation en cours.
---------------------------------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
)
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés.
---
Mon site
|
|
dimanche 23 octobre 2011 à 12:22:53 |
Re : limiter les réservations de mon formulaire

ecolom
|
Hello,
merci NHenry,
pour le count j'y ai pensé mais je suis confronté à un message qui ne me donne pas de résultat (Resource id #6)
Pour mon test, j'essaie simplement de capturer le nombre de réservation et de l'afficher sur ma page. ça bloque déjà... pfff
Dans la seconde partie de mon test, je dois effectuer un calcul afin de signaler via un message que la formation est complète. Et là, dur dur pour moi car débutant je suis.
Code PHP :
// Verifie que les zones date de reservation etnom soient remplies
if ($_REQUEST['date_reservation'] != "" and $_REQUEST['name_users'] != "")
{
$session = "SELECT COUNT(*) FROM int_org WHERE num_form='$date_reservation'";
$recordcount = mysql_query ($session) or die ('erreur sql<br>'.$session.'<br>'.mysql_error());
echo $recordcount;
Merci pour l'aide que vous pouvez m'apporter.
|
|
dimanche 23 octobre 2011 à 13:50:21 |
Re : limiter les réservations de mon formulaire

nemo_1
|
Chalute,
Pensez à lire php.net les functions un peu car l'aide sur linternet est la pour cela.
Le deboggage fait partie de la programmation fait un minimum de recherche et tu trouveras bcp plus facilement.
Ton erreur te dit que tu as une ressource normal car mysql_query renvoit une RESSOURCE :)
Pour voir son contenu, tu es obligé de faire un mysql_fetch_assoc/array et tu auras le count que tu voudras.
voilà comment tu doit proceder:
L'utilisateur veux s'enregistrer pour une date:
1. Avant toute chose tu regarde le count de cette date
2. if($count<12){
//Tu enregistre sa demande
}else{
//Demande refusé
$message = "dslé voili voilou tu affiches ici ce que tu veux";
}
3. Avant l'affiche du formulaire (peut etre en haut tu peux afficher ton message comme suit):
<?php if(!empty($message)){ echo "<h2>{$message}</h2>"; } ?>
j'espère t'avoir aidé.
La prochaine fois:
Quand tu as un problème de logique, tu peux venir sur un forum ou cherché un peu.
Quand tu as un problème d'erreur php/mysql essaie dabord de voir qu'est ce qui cloche, est ce normal ou pas, la fonction utilisée ...
Si vraiment tu ne trouves rien on t'aideras volontier :).
Bon courage
|
|
dimanche 23 octobre 2011 à 23:33:03 |
Re : limiter les réservations de mon formulaire

ecolom
|
Merci Nemo_1
Je passe bcp de temps dans les livres, tutoriaux et forums mais parfois on peut lire cinquante fois la même chose et ne pas le comprendre. C'est mon cas pour les conditions compliquées.
J'ai fini par trouver le code qui me permet de vérifier le nombre de réservation via l'interrogation de la DB.
PAr contre, je ne m'en sort pas avec ma double condition dans mon programme.
En fait j'ai deux conditions spécifiques.
La première doit vérifier dans la db le nombre de réservation et ne pas dépasser 12 personnes.
Si ok, MAJ de mon formulaire dans ma DB et sinon message à l'écran ( javascript dans mon exemple )
La deuxième doit vérifier dans la DB si le user qui s'inscrit existe déjà.
Si n'existe pas MAJ dans la DB et si déjà inscrit, message à l'écran avec retour sur le formulaire ( javascript dans mon exemple)
Pour une condition ça va mais les deux, c'est le fiasco total.
Cela fait + de 3 heures que je tourne en rond a essayer les if else elseif et je n'obtiens pas de résultat à 100%
Qui a -t-il dans mon code qui empêche les deux conditions de fonctionner?
Ou que manque-t-il pour que cela fonctionne.
Code PHP :
// Verifie que les zones date de reservation et nom soient remplies
if ($_REQUEST['date_reservation'] != "" and $_REQUEST['name_users'] != "")
{
$sql = "SELECT * FROM int_org WHERE num_form='$date_reservation'";
$resultat = mysql_query ($sql)or die ('erreur sql<br>'.$sql.'<br>'.mysql_error());
if (mysql_num_rows($resultat) < 12)
{
$sql2 = "INSERT INTO int_org (date_encodage,
date_reservation,
num_form,
nom_users,
email_users
)
VALUES('$date_encodage',
'$date_reservation',
'$date_reservation',
'$nom_users',
'$email_users'
)";
$req2 = mysql_query($sql2) or die('Erreur SQL : <br />'.$sql2);
// -----------------------------------------------------------------------------------------------------------------------------------
// Email envoyé à EC pour verification DB
// -----------------------------------------------------------------------------------------------------------------------------------
} // fin du if nom existe déjà
else
{
?>
<script language="JavaScript">
alert("La session que vous avez choisis est complète. \n ");
window.location.replace("index.php");// On inclut le formulaire d'identification
</script>
<?php
}
$sql1 = "SELECT * FROM int_org WHERE nom_users='$nom_users'";
$req1 = mysql_query ($sql1) or die ('erreur sql<br>'.$sql1.'<br>'.mysql_error());
//vérifie si le nombre de lignes trouvées est = 0 si oui, c'est que ce nom n'est pas encore utilisé => ok
if(mysql_num_rows($req1) == 0)
{
$sql2 = "INSERT INTO int_org (date_encodage,
date_reservation,
num_form,
nom_users,
email_users
)
VALUES('$date_encodage',
'$date_reservation',
'$date_reservation',
'$nom_users',
'$email_users'
)";
$req2 = mysql_query($sql2) or die('Erreur SQL : <br />'.$sql2);
// -----------------------------------------------------------------------------------------------------------------------------------
// Email envoyé à EC pour verification DB
// -----------------------------------------------------------------------------------------------------------------------------------
} // fin du if nom existe déjà
else
{
?>
<script language="JavaScript">
alert("Une réservation existe déjà à votre nom. \n Si vous désirez changer de date, veuillez contacter Kathy \n A booking already exists in your name. \n If you want to change the date, please contact Kathy ");
window.location.replace("index.php");// On inclut le formulaire d'identification
</script>
<?php
}
} // fin du else
Votre aide serait la bienvenue car j'ai sorti mes grandes rames.
Merci
|
|
lundi 24 octobre 2011 à 11:31:38 |
Re : limiter les réservations de mon formulaire

nemo_1
|
Chalute,
Voilà ce que je te suggère:
Code PHP :
<?php
//Verifier si on a pas atteint les 12 inscriptions
$query = "SELECT count(date) FROM ta_table_ici WHERE date = $_POST['date']";
$count_set = mysql_query($query);
$count = mysql_fetch_assoc($count_set);
$count = array_shift($count);//Pour avoir le contenu de ton tableau car tu
aura un truc du genre array(0 => le count);
if($count<12){
$query = "SELECT count(email_users) FROM tatable WHERE email_user =
$_POST['email'];
$user_exists_set = mysql_query($query);
$user_exists = mysql_fetch_assoc($user_exists_set);
$user_registred = array_shift($user_exists);
if($user_registred == 1){
//C'est OK tu peux l'enregistrer
}else{
//C'est NOK tu peux faire comme ceci
$message = "Vous etes deja enregistre pour cette formation";
}
?>
Bon tu regarde dabord si il ya de la place pour ce reserver.
Après on regarder si le user est deja enregistrer.
Si non, ben tu lenreistre.
S'il est deja enregistrer tu lui affiche le message en prenant bien soin de
faire un test sur la variable message pour voir s'il existe ou pas.
Jespère que c'est clair je suis au travail je peux pas faire plus pour le
moment :)
|
|
mercredi 26 octobre 2011 à 23:54:11 |
Re : limiter les réservations de mon formulaire

ecolom
|
Code PHP : [/code]Bonsoir nemo_1,
j'ai réadapté mon code avec tes conseils bien que je désire avoir un message séparé pour mes deux conditions. EN ce qui concerne le ELSE, il doit mettre à jour ma DB
Ci-dessous mobn code.
Il fonctionne presque....
Quand un user veut réserver une date alors qu'il s'est déjà renregistré, le message apparait pour signaler qu'il y a déjà une réservation à son nom. OK
Quand un user choisis une date alors que la session de formation est complète ( 12 users dans mon exemple ) un message apparait et signale que la session est complète. Malheureusement, pour une raison que j'ignore, il fait quand même la mise à jour de la db et dépasse le nombre de users prévu.
Pourtant mon message reinitialise la page et à ma connaissance la fonction Else ne s'active que si les deux conditions sont bonnes.
Qu'est-ce qui bloque dans ce que j'ai écrit ?
Merci pour l'aide que vous voudrez bien m'apporter.
Code PHP :
// Verifie que les zones date de reservation et nom soient remplies
if ($_REQUEST['date_reservation'] != "" and $_REQUEST['name_users'] != "")
{
$sql = "SELECT count(*) as nombre FROM int_org WHERE num_form='$date_reservation'";
$resultat = mysql_query ($sql);
$data = mysql_fetch_assoc($resultat);
if ($data['nombre'] > 12)
{
?>
<script language="JavaScript">
alert("La session est complète \n Veuillez choisir une autre date");
window.location.replace("index.php");
</script>
<?php
}
$sql1 = "SELECT count(*) as nombre FROM int_org WHERE nom_users='$nom_users'";
$req1 = mysql_query ($sql1);
$data = mysql_fetch_assoc($req1);
//vérifie si le nombre de lignes trouvées est = 0 si oui, c'est que ce pseudo n'est pas encore utilisé => ok
if($data['nombre'] != 0)
{
?>
<script language="JavaScript">
alert("Une réservation existe déjà à votre nom. \n Si vous désirez changer de date, veuillez contacter Kathy \n A booking already exists in your name. \n If you want to change the date, please contact Kathy");
window.location.replace("index.php");
</script>
<?php
}
else
{
$sql2 = "INSERT INTO int_org (date_encodage,
date_reservation,
num_form,
nom_users,
email_users
)
VALUES('$date_encodage',
'$date_reservation',
'$date_reservation',
'$nom_users',
'$email_users'
)";
$req2 = mysql_query($sql2) or die('Erreur SQL : <br />'.$sql2);
}
}
|
|
jeudi 27 octobre 2011 à 21:44:56 |
Re : limiter les réservations de mon formulaire

NHenry
|
Bonjour,
As-tu mis un exit(); pour demander d'arrêter le code ?
---------------------------------------------------------------------
- Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien
- Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite :
)
- Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés.
---
Mon site
|
|
Cette discussion est classée dans : date, code, formulaire, echo, users
Répondre à ce message
Sujets en rapport avec ce message
formulaire a retardement ????? [ par alvaro ]
Salut, je ne conprend pas pourquoi! pourquoi... pourquoi...c'est un passage de variable par formulaire. Sous ie4, ou modzila il faut attendre 10s sur
pb dans mon code [ par attentio ]
salut !!!bon ...G une petit soucis dans mon code de la page formulaire.php.je vous explique ... G une premiere page index.php qui me renvoie une liste
pb de code pour lecture du contenu d'un repertoire !! [ par fredericmaill ]
Salut, je bloque sur un truc tout bete et ca m'enerve grave !!!j'ai fait un script qui vas ouvrir un repertoire et qui vas rechercher dans ce reperto
probleme passage parametre [ par tontonsaliou ]
voila je voudrais récuperer la valeur d'un champ selectionner dans un formulaire voici le code du formulaire: echo""; &n
passage de parametre probleme [ par tontonsaliou ]
voila je voudrais récuperer la valeur d'un champ selectionner dans un formulaire voici le code du formulaire: echo""; &n
PB s/ FORMULAIRE [ par ITALIENNE ]
Bonjour a tous, je suis nouvelle, et passe mon premier message. En effet, je suis découragée, car je n'arrive pas a trouver une solution a mon PB. J'a
probleme avec l'execution d'un programme [ par dipin ]
bonjours!j'ai un probleme j'ai un code (de calendrier) qui ne fonctionne pas sur un serveur free (adresse avec l'exemple http://dipinservice.free.fr)
Afficher le nombre de jour en fonction du mois saisi dans le formulaire [ par lune2009 ]
Bonjour,j'aimerais afficher dans un tableau,ou le nombre de ligne correspond au nombre des jours qui existe dans le mois,sachant que la valeur du moi
Envois E-Mail php [ par GoGaule ]
Bonsoir. [code=php] <?php $msg = "Nom:\t$nom\n"; $msg .= "Prenom:\t$prenom\n"; $msg .= "Adresse:\t$adresse\n"; $msg .= "Ad
liste deroulant et recuperation de donnée en php [ par smismismismi ]
bonjours j'ai un problème c'est que je doit demander à client de choisir un choix et ce dernier charge le choix suivant et en même temps j'ai demande
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|