Insertion dans la base de donnee

Fermé
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023 - 3 janv. 2017 à 19:07
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023 - 4 janv. 2017 à 15:22
Bonjour,
j'ai voudrais mettre en place un script php qui permetera au utilisateur de faire l'insertion de deux table a meme temp. le projet c'est la gestion d'ordonnance. les tables concernee sont:
consultations, ordonnane, medicamrnts, contenue_ordonnances. la table consultation et medicament sont déjà alimente, maintenant le probleme c'est de pouvoir inserer les deux autre ( ordonances et contenue_ordonnances) en un seul clic.
voici le formulaire.

je vais vous expliquer le fonctionnemet, le formulaire permet de gerer l'ordonnance et le contenue de l'ordonnance (ligne ordonnance).
le champ patient concerne l'ordonnance, les autres champ concernent contenue_ordonnances.
maintenant je veux que en ciliquant sur button Ajouter le script insert dans la table ordonnances et contenue_ordonnances en laissant les lignes vide, c'est-à-dire dans le formulaire il ya 5 ligne predefini pour le contenue_ordonnances, supposons que l'ordonnance ne contienne que 3 lignes, donc le script doit prendre les 3 lignes renseigne et laisser les 2 lignes vide.
merci en envance.


juste quelque remarq,
je utilise POSTGRESQL comme systeme de getion de donnee, et les table sont compose de:

Ordonnance (id_or, id_con(identifient de la table consultation) et le num_or (numero d'ordonance qui est auto generer)).
contenue_ordonnances(id, id_or((identifient de la table ordonnance),id_med((identifient de la table medicament), mesure et le quantite a acheter.

3 réponses

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
3 janv. 2017 à 21:55
Bonjour,

Comment as-tu nommé les différents champs dans "Médicaments", "Mesure", "Quantité) ?

Est-ce que tu pourrais poster tout le code de ton formulaire ?
0
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023
4 janv. 2017 à 01:22
en faite les champs "Mesure", "Quantité) ne sont pas dans la table "Médicaments", ils sont dans la table "contenue_ordonnances" et j'ai les nome measur, qte.

la table "contenue_ordonnances" est en relation avec la table "Médicaments" et "Ordonnances", on obtienne le patient a travers la table ordonnances et le Médicaments a travers la table "Médicaments".

voici le code de formulaire:



<?php
	include   '../../layout/layout.php';
	$nom_pa=$_GET['nom_pa'];
	$prenom_pa=$_GET['prenom_pa'];
	$nom_me=$_GET['nom_me'];
	$prenom_me=$_GET['prenom_me'];
	$date_con=$_GET['date_con'];
	$id_con=$_GET['id_con'];
	echo  '<br /><br />';
	echo '<div id="contenair">';
	echo 	'<div class="row">';
	echo  		'<div class="col-xs-12 col-md-6 col-md-offset-3">';
	echo  			'<form class="form-horizontal well bg-form" method="POST" action="ordonnances.php">';
	echo  				'<fieldset class="fieldset">';

	echo  				'<!-- Form Name -->';
	echo  				'<legend><h2>Création d\'Ordonnance</h2></legend>';
	echo 				'<input type="hidden" name="req" value="I">';
	echo 				'<input type="hidden" name="id_con" value="'.$id_con.'">';
	echo 				'<input type="hidden" name="nom_pa" value="'.$nom_pa.'">';
	echo 				'<input type="hidden" name="prenom_pa" value="'.$prenom_pa.'">';
	echo 				'<input type="hidden" name="nom_me" value="'.$nom_me.'">';
	echo 				'<input type="hidden" name="prenom_me" value="'.$prenom_me.'">';
	echo 				'<input type="hidden" name="date_con" value="'.$date_con.'">';

	echo  				'<!-- Champ nom-->';
	echo  				'<div class="form-group">';
  	echo  					'<label class="col-md-3 control-label" for="cod_or1">patient</label>';  
  	echo  					'<div class="col-md-7">';
  	echo  						'<input id="cod_or1" name="id_con" value="'.$nom_pa.'  '.$prenom_pa.'" placeholder="" class="form-control input-md input-size" readonly required="" type="text">';
  	echo  					'</div>';
	echo  				'</div>';
	
	echo 					'<table id="students" class="table table-striped table-hover table-condensed display">';
  	echo 							'<tr>';
   	echo 								'<th>Medicaments</th>';
	echo 								'<th>Mesure</th>';
	echo 								'<th>Quantite</th>';
  	echo 							'</tr>';
  	echo 						'</thead>';
  	$i=1;
  	while ($i <= 5) {
  		
  		$requete=pg_query($conn, "select * from medicaments order by nom_med");
  		echo 					'<tbody>';
	  	echo 						'<tr>';
	   	echo 							'<td>';
	   	echo  								'<select name="id_med" class="form-control">';
	   	while ($line=pg_fetch_assoc($requete)) {
	   		echo  									'<option value="'.$line['id_med'].'">'.$line['nom_med'].'</option>'; 
	   	}
	   	echo  								'</select>';
		echo 							'</td>';
		echo 							'<td>';
		echo  								'<input name="measur" value="" placeholder="" class="form-control input-md" type="text">';
		echo 							'</td>';
		echo 							'<td>';
		echo  								'<input name="qte" value="" placeholder="" class="form-control input-md" type="text">';
		echo 							'</td>';
	  	echo 						'</tr>';
	  	$i++;
  	}
  	echo 						'</tbody>';
	echo 					'</table>';
	echo  				'<hr />';
	echo  				'<!-- Button (Double) -->';
	echo  				'<div class="form-group">';
  	echo  					'<label class="col-md-3 control-label" for="button1id"></label>';
  	echo  					'<div class="col-md-4">';
  	echo                '<button class="btn btn-info">Ajouter</button>  ';
 	echo                '<a href="../consultations/consultations.php" rel="nofollow noopener noreferrer" target="_blank"><span><button class="btn btn-sup">Annuler</button></span></a>';
  	echo  					'</div>';
	echo  				'</div>';
	echo  			'</fieldset>';
	echo  		'</form>';
	echo  	'</div>';
	echo  '</div>';
	echo'</div>';
?>																					


Un grand merci vous aide!
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
4 janv. 2017 à 13:03
J'ai du modifier un peu le code du formulaire :

<?php
include '../../layout/layout.php';
$nom_pa=$_GET['nom_pa'];
$prenom_pa=$_GET['prenom_pa'];
$nom_me=$_GET['nom_me'];
$prenom_me=$_GET['prenom_me'];
$date_con=$_GET['date_con'];
$id_con=$_GET['id_con'];
echo '<br /><br />';
echo '<div id="contenair">';
echo '<div class="row">';
echo '<div class="col-xs-12 col-md-6 col-md-offset-3">';
echo '<form class="form-horizontal well bg-form" method="POST" action="ordonnances.php">';
echo '<fieldset class="fieldset">';

echo '<!-- Form Name -->';
echo '<legend><h2>Création d\'Ordonnance</h2></legend>';
echo '<input type="hidden" name="req" value="I">';
echo '<input type="hidden" name="id_con" value="'.$id_con.'">';
echo '<input type="hidden" name="nom_pa" value="'.$nom_pa.'">';
echo '<input type="hidden" name="prenom_pa" value="'.$prenom_pa.'">';
echo '<input type="hidden" name="nom_me" value="'.$nom_me.'">';
echo '<input type="hidden" name="prenom_me" value="'.$prenom_me.'">';
echo '<input type="hidden" name="date_con" value="'.$date_con.'">';

echo '<!-- Champ nom-->';
echo '<div class="form-group">';
echo '<label class="col-md-3 control-label" for="cod_or1">patient</label>';
echo '<div class="col-md-7">';
echo '<input id="cod_or1" name="id_con" value="'.$nom_pa.' '.$prenom_pa.'" class="form-control input-md input-size" readonly required="" type="text">';
echo '</div>';
echo '</div>';

echo '<table id="students" class="table table-striped table-hover table-condensed display">';
echo '<tr>';
echo '<th>Medicaments</th>';
echo '<th>Mesure</th>';
echo '<th>Quantite</th>';
echo '</tr>';
echo '</thead>';
$i=1;
while ($i <= 5) {

$id_med='id_med'.$i
$measur='measur'.$i
$qte='qte'.$i
$requete=pg_query($conn, "select * from medicaments order by nom_med");
echo '<tbody>';
echo '<tr>';
echo '<td>';
echo '<select name=$id_med class="form-control">';
while ($line=pg_fetch_assoc($requete)) {
echo '<option value="'.$line['id_med'].'">'.$line['nom_med'].'</option>';
}
echo '</select>';
echo '</td>';
echo '<td>';
echo '<input name=$measur class="form-control input-md" type="text">';
echo '</td>';
echo '<td>';
echo '<input name=$qte class="form-control input-md" type="text">';
echo '</td>';
echo '</tr>';
$i++;
}
echo '</tbody>';
echo '</table>';
echo '<hr />';
echo '<!-- Button (Double) -->';
echo '<div class="form-group">';
echo '<label class="col-md-3 control-label" for="button1id"></label>';
echo '<div class="col-md-4">';
echo '<button class="btn btn-info">Ajouter</button> ';
echo '<a href="../consultations/consultations.php" rel="nofollow noopener noreferrer" target="_blank"><span><button class="btn btn-sup">Annuler</button></span></a>';
echo '</div>';
echo '</div>';
echo '</fieldset>';
echo '</form>';
echo '</div>';
echo '</div>';
echo'</div>';
?>
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
Modifié par barnabe0057 le 4/01/2017 à 13:22
Voilà la page ordonnances.php :


<?php


// on définit les variables

$dbname = nom de la base;

$user = root;

$password = mot de passe;


$req = $_POST['req'];

$id_con = $_POST['id_con'];

$nom_pa = $_POST['nom_pa'];

$prenom_pa = $_POST['prenom_pa'];

$nom_me = $_POST['nom_me'];

$prenom_me = $_POST['prenom_me'];

$date_con = $_POST['date_con'];


// on définit un tableau en 2 dimensions

$ordonnance = array( 'ligne1' => array( $_POST[$id_med1], $_POST[$measur1], $_POST[$qte1] ),
'ligne2' => array( $_POST[$id_med2], $_POST[$measur2], $_POST[$qte2] ),
'ligne3' => array( $_POST[$id_med3], $_POST[$measur3], $_POST[$qte3] ),
'ligne4' => array( $_POST[$id_med4], $_POST[$measur4], $_POST[$qte4] ),
'ligne5' => array( $_POST[$id_med5], $_POST[$measur5], $_POST[$qte5] ));


// on se connecte à la base '?????' via le driver PDO

try
{
$bdd = new PDO('pgsql:dbname=$dbname;host=localhost;port=5432;charset=utf8', $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
}

catch(Exception $e)
{
die('Connection failed : '.$e->getMessage());
}


// on parcourt le tableau ligne par ligne

foreach( $ordonnance as $key => $value )
{

$case_vide = 0;
$position = 1;

foreach( $value as $data )
{

if(empty($data))
{
$case_vide = 1;
}

switch ($position)
{
case 1:
$med = $data;
break;

case 2:
$mes = $data;
break;

case 3:
$qte = $data;
break;
}

$position++;

}

if ($case_vide == 0)
{


// on ajoute les données dans la table 'ordonnance'

$req = $bdd->prepare('INSERT INTO ordonnance(id_or, id_con, num_or) VALUES(:id_or, :id_con, :num_or)');

$req->execute(array('id_or' => $id_or, 'id_con' => $id_con, 'num_or' => $num_or));

$req->closeCursor();


// on ajoute les données dans la table 'contenu_ordonnances'

$req = $bdd->prepare('INSERT INTO contenu_ordonnances(id, id_or, id_med, mesure, quantite) VALUES(:id, :id_or, :id_med, :mesure, :quantite)');

$req->execute(array('id' => $id, 'id_or' => $id_or, 'id_med' => $id_med, 'mesure' => $mesure, 'quantite' => $quantite));

$req->closeCursor();

}

}

exit;

?>

0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 907
Modifié par barnabe0057 le 4/01/2017 à 13:18
Je tiens à préciser que je n'ai pas testé le code, à toi de tester et d'adapter si besoin.

D'ailleurs je n'ai pas trouvé la correspondance de certaines variables que tu dis vouloir ajouter aux tables ('id' dans 'contenu_ordonnances' et 'id_or' et 'num_or' dans 'ordonnance')
0
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023
4 janv. 2017 à 15:07
Ok Merci,
déjà, vous m'avez donnee des ides. je veux analisez le code.
sinon 'id_or' c'est l'identifiant de 'ordonnance' qui fais qussi cle etrangaire dans la table 'contenu_ordonnances', num_or c'est le numero d'ordonnance qui est auto generer.
0
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023
4 janv. 2017 à 15:14
Donc si je conprenne bien je dois aussi avoir

$id_or='id_or'.$i

dans le bocle du formulaire.
0
karango Messages postés 80 Date d'inscription vendredi 29 juillet 2016 Statut Membre Dernière intervention 10 janvier 2023
4 janv. 2017 à 15:22
merci beaucoup.
0