Affichage de donnees dynamiques

Eléphanteau du PHP | 19 Messages

17 avr. 2014, 18:56

Bonsoir les amis de PHPfrance
j'ai un problème que je n'arrive pas à résoudre

j'ai devellopé une application php qui marche bien mais je veux la rendre plus performante.

j'ai une table Chambre que j'ai créé(elle a comme attribut : id_chambre, chambre_type, chambre_type, chambre_prix);
<?php

//verifiaction de la validation du fromulaire:
if(isset($_POST['Enregistrer']))
{
//verification des champs de saisie du formulaire:
if((isset($_POST['id_client']) and !empty($_POST['id_client'])) and (isset($_POST['id_chambre']) and !empty($_POST['id_chambre'])) and (isset($_POST['datedeb']) and !empty($_POST['datedeb'])) and (isset($_POST['datefin']) and !empty($_POST['datefin'])) and (isset($_POST['nbre']) and !empty($_POST['nbre'])) and (isset($_POST['prix']) and !empty($_POST['prix'])))
{
//connexion et selection de base de données:

include 'connexion/connexion.php';

//definition des variables:

$idclient=mysql_real_escape_string($_POST['id_client']);
$idchambre=mysql_real_escape_string($_POST['id_chambre']);
$datedeb=mysql_real_escape_string($_POST['datedeb']);
$datefin=mysql_real_escape_string($_POST['datefin']);
$nbre=mysql_real_escape_string($_POST['nbre']);
$datenreg= date("Y-m-d");
$prix=mysql_real_escape_string($_POST['prix']);
$montant=$nbre*$prix;
$hotel=$_SESSION['hotel_pseudo'];

//verification de la disponibilité des chambres:

$req='SELECT * FROM reservation WHERE id_chambre="'.$idchambre.'" AND 
(
		("'.$datedeb.'" >= datedeb AND "'.$datedeb.'" < datefin)
		 OR
		 ("'.$datefin.'" > datedeb AND "'.$datefin.'" <= datefin)
		 OR
		 ("'.$datedeb.'" < datedeb) AND (datedeb < "'.$datefin.'")
		OR
		("'.$datedeb.'" = datedeb) AND (datefin = "'.$datefin.'")
		OR ("'.$datedeb.'" = datedeb)
	)';
	

$execut= mysql_query($req) or die('Error SQL!<br/>'.$req.'<br/>'.mysql_error());

$dispo=mysql_fetch_array($execut);

if($dispo)
{
$erreur='La chambre est occupée pendant cette periode';
}
else
{

//enregistrement de la reservation:
$sql='INSERT INTO reservation VALUES("", "'.$idclient.'", "'.$idchambre.'", "'.$datedeb.'", "'.$datefin.'", "'.$nbre.'", "'.$datenreg.'", "'.$prix.'", "'.$montant.'", "'.$hotel.'" )';
$fact='INSERT INTO facture VALUES("", "'.$idchambre.'", "'.$montant.'", "'.$datenreg.'", "'.$idclient.'", "'.$hotel.'")';

//execution de la requete:

$execution=mysql_query($sql) or die('Error SQL!<br/>'.$execution.'<br/>'.mysql_error());
$enrgfact=mysql_query($fact) or die('Error SQL!<br/>'.$fact.'<br/>'.mysql_error());

echo "<script type=\"text/javascript\"> alert('Les données ont été enregitrées');window.location='commande.php';</script>";
}

}

else
{
$erreur='Veuillez remplir le formulaire integralement!';
}
}
?>
<html>
<head>
<title>essaie</title>
</head>
<body>
<div  id="icone">
<center><form action="commande.php" method="post"><fieldset><legend>ENREGISTRER UNE RESERVATION:</legend>
<?php if (isset($erreur)) echo '<br />',$erreur;?>
<?php if (isset($succes)) echo '<br />',$succes;?>

<p><label>NOM et PRENOMS:</label>
<?php
//connexion
include 'connexion/connexion.php';

$query=mysql_query('select id_client, client_nom, client_pren from client order by client_nom asc') or die (mysql_error());
				if ($query) 
				{
				echo"<select name=\"id_client\">";
				while($array=@mysql_fetch_array($query))
				{
				 if($choix==$array['id_client'])
				 {
				 echo"<option value=\"".$array["id_client"]."\"><span style='margin-right:15px;'>".stripslashes($array["client_nom"])." ".stripslashes($array["client_pren"])."</span></option>";
				 }
				 else
				 {
				 echo"<option value=\"".$array["id_client"]."\"><span style='margin-right:15px;'>".stripslashes($array["client_nom"])." ".stripslashes($array["client_pren"])."</span></option>";
				 }
							
				}
				echo"</select>";
				mysql_free_result($query);
				
                }?>

<p><label>NOM CHAMBRE:</label>
<?php
//connexion
include 'connexion/connexion.php';


$query=mysql_query('select id_chambre, chambre_nom, chambre_type, chambre_prix from chambre  order by id_chambre asc') or die (mysql_error());
				if ($query) 
				{
				echo"<select name=\"id_chambre\">";
				while($array=@mysql_fetch_array($query))
				{
				 if($choix==$array['id_chambre'])
				 {
				 echo"<option value=\"".$array["id_chambre"]."\" selected><span style='margin-right:15px;'>".stripslashes($array["chambre_nom"])." ".stripslashes($array["chambre_type"])."</span></option>";
				 }
				 else
				 {
				 echo"<option value=\"".$array["id_chambre"]."\"><span style='margin-right:15px;'>".stripslashes($array["chambre_nom"])." ".stripslashes($array["chambre_type"])."</span></option>";
				 }
							
				}
				echo"</select>";
				mysql_free_result($query);
				
                }?>
<p><label>PRIX DE LA NUITEE:</label><input type="text" name="prix" value="<?php ?>"/> <p>
<p><label>DATE D'ENTREE:</label><input type="date" name="datedeb" id="datepicker" value="<?php echo date('j/m/Y'); ?>" /></p>
<p><label>DATE DE SORTIE:</label><input type="date" name="datefin" id="datepicker" value="<?php echo date('j/m/Y'); ?>"/></p>
<p><label>NOMBRES DE JOURS:</label><input type="text" name="nbre" value="<?php if (isset($_POST['nbre'])) echo htmlentities(trim($_POST['nbre'])); ?>"></p>
<p><input type="submit" name="Enregistrer" value="Enregistrer"><input type="reset" name="Annuler" value="Annuler"></p>
</fieldset></form></center>
</div>
</body>
</html>
Mon probleme est que je veux, lorsque je selectionne une chambre le prix s'affiche dans la balise INPUT ou il ya PRIX DE LA NUITEE. j'ai grandement besoin de votre aide car je suis debutant en php. Merci d'avance et Bon JEUDI SAINT

Eléphant du PHP | 58 Messages

18 avr. 2014, 06:47

Il va falloir que tu passes par JavaScript et AJAX pour ça. Par ailleurs, attention aux fonctions mysql_... qui sont dépréciées et bientôt supprimées ! Il faut utiliser à la place mysqli_...

Eléphanteau du PHP | 19 Messages

10 juin 2014, 13:46

Merci beacoup les amis mais j'aimerais avoir des documentations ou memes des liens

Mammouth du PHP | 1339 Messages

11 juin 2014, 00:06

Soit tu actualises ton formulaire a chaque changement de valeur de ton select ... 1er choix ou tu traites le prix en PHP directement dans la page.
Soit tu le fait de changer de valeur ton formulaire appelle une page exterieur pour afficher le prix... 2eme choix qui traite le prix en AJAX.

De la documentation ici en acceptant de te servir du framework jQuery qui te simplifiera vraiment les choses.

Ajax jQuery : http://api.jquery.com/jquery.ajax/
Recuperer la valeur d'un select : http://learn.jquery.com/using-jquery-co ... ed-option/

Tu as tout en main :) Prend le temps de comprendre et d'apprendre, ca te fera gagner du temps et un site propre
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphanteau du PHP | 16 Messages

11 juin 2014, 06:46

par hasard, y'aurait pas la même chose en français ?.... o)

Mammouth du PHP | 2278 Messages

11 juin 2014, 08:33

Je commencerais par modifier mon formulaire en y ajoutant required = 'required' à tous les champs obligatoires et par substituer à ce IF protéiforme une série de tests permettant de retourner des messages adaptés:
$

Code : Tout sélectionner

message = ""; $erronne = false; Pas d'id du cllient $message = $message_id_client;$erronne = true; Pas d'id de chambre : $message .= $message_id_chambre; $erronne = true; etc, etc... if ($erronne == false) { affichege du message d'erreur et redirection; } else { traitement de la réservation }
.
if((isset($_POST['id_client']) and !empty($_POST['id_client'])) and (isset($_POST['id_chambre']) and !empty($_POST['id_chambre'])) and (isset($_POST['datedeb']) and !empty($_POST['datedeb'])) and (isset($_POST['datefin']) and !empty($_POST['datefin'])) and (isset($_POST['nbre']) and !empty($_POST['nbre'])) and (isset($_POST['prix']) and !empty($_POST['prix'])))
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD