Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2993 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Enregistrer formulaires dans 2 tables mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Enregistrer formulaires dans 2 tables mysql

n°2139753
maxredphen​ix
Posté le 30-04-2012 à 12:16:21  profilanswer
 

Bonjour à tous,
 
Je souhaite utiliser un formulaire pour enregistrer des infos dans 2 tables différentes. A l'heure actuelle j'ai un page php nommée traitement.php (appelée lors du clique sur "envoyé" ) par la page php qui contient le formulaire) qui me sert à enregistrer mes données dans une des 2 tables mais je voudrais savoir s'il est possible de l'utiliser pour enregistrer dans 2 tables différentes à la fois? la 2 tables reprends juste quelques données de la première et me sert pour un calendrier (jquery-week-calendar)
 
Voici le code de la page traitement.php
 
<?php
// Connexion à la base de donnée pour WAMP
$host = "localhost";  
$user = "root";  
$passwd = "";  
$database = "gestspie";  
$link = @mysql_connect($host, $user,$passwd);
 
if(!$link){
 die('Erreur de connexion au serveur');
}
 
$select_db = @mysql_select_db($database);
if(!$select_db){
 die('Erreur de connexion à la base');
}
// Connexion à la base de donnée
// $base = mysql_connect ('serveur', 'login', 'pass');  
//mysql_select_db ('ma_base', $base) ;  
 
// Déclaration des variables
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Enregistrement reussi.";
$message = $msg_erreur;
 
// Enregistrement des champs non remplis
// Utilisation la fonction PHP empty() qui retourne:
//  -> "vrai" si la variable passée en paramètre est vide
//  -> "faux" dans le cas contraire.
if (empty($_POST['num_appelant']))  
$message .= "Le Numéro de l'appelant<br/>";
 
// Si le contenu de la variable $message et plus grand que celui de la variable $msg_erreur,  
// c'est que nous venons d'ajouter des champs non remplis donc on affiche un message d'erreur
if (strlen($message) > strlen($msg_erreur)) {
echo $message;
}
// Si les champs sont bien remplis, on peut insérer leurs valeurs dans la base de données MySQL.
// Utilisation de mysql_real_escape_string() qui protège les données avant insertion et notamment  
// les apostrophes, guillemets, etc... pour protéger des attaques par injection SQL.
// La boucle foreach() va passer toutes la variables $_POST envoyées par le formulaire en revue.  
// Pour chacune d'elle nous allons créer une variable spécifique avec $$index, nettoyer sa valeur avec trim()  
// (en enlevant notamment les espaces de fin) et sécuriser sa valeur avec mysql_real_escape_string().
else{
 foreach($_POST as $index => $valeur){
  $index = mysql_real_escape_string(trim($valeur));
 }
// Insérer les données dans la table "appels" avec une requête sql de type "INSERT" et la fonction mysql_query().
// Vérification que la requête s'est bien effectuée avec la valeur de retour $res
// Si c'est le cas, on affiche $msg_ok, sinon on affiche l'erreur qui a eu lieu dans MySQL
// Le premier "" dans values correspont dans la table à l'ID qui est automatiquement incrémenté
 $sql="INSERT INTO appels(id, num_appelant, date_appel, heure_appel, media, nom_demandeur, batiment, systemes, service, local, type_inter, tps_inter_souhaite, objet_appel, commentaires)  
 VALUES ('','$num_appelant','$date_appel','$heure_appel','$media','$nom_demandeur','$batiment','$systemes','$service','$local','$type_inter','$tps_inter_souhaite','$objet_appel','$commentaires')";
 $res=mysql_query($sql);
 if ($res) {
  echo $msg_ok;
 } else {
  echo mysql_error();
 }
}
?>
 
Est-ce qu'il possible de modifier ce code pour enregistrer mon formulaire comme je veux le faire?
 
merci d'avance
 
maxredphenix

mood
Publicité
Posté le 30-04-2012 à 12:16:21  profilanswer
 

n°2139759
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2012 à 13:13:30  profilanswer
 

Bien sûr que c'est possible, suffit de faire un premier enregistrement dans la table 1 en ne prenant que les infos du formulaire pour cette table puis faire un autre enregistrement dans la table 2 en prenant les infos utiles pour cet enregistrement...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2139766
maxredphen​ix
Posté le 30-04-2012 à 13:58:05  profilanswer
 

Merci pour ta réponse.
 
Donc si je fais comme ça:
$sql="INSERT INTO appels(id, num_appelant, date_appel, heure_appel, media, nom_demandeur, batiment, systemes, service, local, type_inter, tps_inter_souhaite, objet_appel, commentaires)  
 VALUES ('','$num_appelant','$date_appel','$heure_appel','$media','$nom_demandeur','$batiment','$systemes','$service','$local','$type_inter','$tps_inter_souhaite','$objet_appel','$commentaires')";
 $res=mysql_query($sql);
 if ($res) {
  echo $msg_ok;
 } else {
  echo mysql_error();
 }
 $sql="INSERT INTO calendrier(id, date_appel, heure_appel, media, nom_demandeur, type_inter)  
 VALUES ('','$date','$heure_debut','$media','$nom_demandeur','$type_inter')";
 $res=mysql_query($sql);
 if ($res) {
  echo $msg_ok;
 } else {
  echo mysql_error();
 }
 
Cela peut fonctionner ou il faut quand même que je même une autre valeur pour le $sql et le $res?

n°2139894
rufo
Pas me confondre avec Lycos!
Posté le 01-05-2012 à 13:55:21  profilanswer
 

Non, c'est bon comme ça.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2139899
maxredphen​ix
Posté le 01-05-2012 à 14:09:08  profilanswer
 

Ok merci bon ba je vais tester tout cela alors.
 
Merci pour ton aide


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Enregistrer formulaires dans 2 tables mysql

 

Sujets relatifs
wxWidgets et mysql++[php]Erreur mysql_connect et pas de référence à Mysql dans phpinfo
enregistrer source d'une page externe après traitementclob.setCharacterStream a l'air de ne pas marcher du tout avec MySQL
tinyMCE => PHP => MySQL : erreur UTF-8 (Incorrect string value)mysql data recovery
[Résolu] AJAX, MySQL et données lourdesenregistrer des actions et en faire une "macro"
Trouver valeurs ne se trouvant pas dans deux tablescréer un tableau php avec tri et plusieurs tables...
Plus de sujets relatifs à : Enregistrer formulaires dans 2 tables mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR