begin process at 2012 05 31 03:25:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

limiter les réservations de mon formulaire


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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>&nbsp;".$row['date_reservation']."</td>";
			    echo "<td align=center><font color=#333333 class=tabval>&nbsp;".$row['nom_users']."</td>";
			    echo "<td align=center><font color=#333333 class=tabval>&nbsp;".$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

Membre Club Administrateur CodeS-SourceS
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.

---------------------------------------------------------------------
  1. Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien
  2. Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
  3. 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=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

Membre Club Administrateur CodeS-SourceS
Bonjour,

As-tu mis un exit(); pour demander d'arrêter le code ?

---------------------------------------------------------------------
  1. Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien
  2. Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
  3. 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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,123 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales