Insertion dans la base de donnee

karango Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -  
karango Messages postés 80 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

barnabe0057 Messages postés 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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   Statut Membre Dernière intervention  
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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 14455 Date d'inscription   Statut Contributeur Dernière intervention   4 925
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
merci beaucoup.
0