comment faire pour que le resultat d'un formulaire soit saisie ds 2 bdd

Eléphanteau du PHP | 14 Messages

26 sept. 2008, 12:58

Bonjour à tous :)

voilà je vous explique :
j'ai un formulaire qui saisie tous ses résultat dans une BDD

et je voudrai que le résultat "email" de mon formulaire soit aussi saisi dans une autre bdd ; celle de ma newsletter (phpmynewsletter)

car pour le moment je copie manuellement les adresses mails :roll:

étant débutant j'ai essayer de copier cela après l'insertion de ma première bdd :
$cnx = mysql_connect( "localhost", "xxx", "xxx" ) ;
$db = mysql_select_db( "phpmnl_email" ) ;

//récupération des valeurs des champs:
$mail=$_POST["mail"] ;
//création de la requête SQL:
$sql = "INSERT INTO phpmnl_email (email)
VALUES ('$mail')";
le résultat est que la première bdd est totalement sqwizé :shock: aucune saisie dans celle ci, par contr ele mail se rajoute bien dans mon autre base phpmnl_email .

Merci d'avance de votre attention :D
Modifié en dernier par elrime le 26 sept. 2008, 15:01, modifié 1 fois.

Mammouth du PHP | 1353 Messages

26 sept. 2008, 13:53

Bonjour,

tu la fais comment l'insertion qui est "squizzée" ?? Montre le code des deux stp
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 14 Messages

26 sept. 2008, 14:11

de la meme maniere en fait ... :p

$cnx = mysql_connect( "localhost", "xxx", "xxx" ) ;
$db = mysql_select_db( "ALCHIWEB" ) ;


$demande=$_POST["demande"] ;
$societe=$_POST["societe"] ;
$adresse1=$_POST["adresse1"] ;
$adresse2=$_POST["adresse2"] ;
$CP=$_POST["CP"] ;
$ville=$_POST["ville"] ;
$pays=$_POST["pays"] ;
$famille=$_POST["famille"] ;
$civilite= $_POST["civilite"] ;
$nom = $_POST["nom"] ;
$prenom= $_POST["prenom"] ;
$tel= $_POST["tel"] ;
$mobile= $_POST["mobile"] ;
$fax=$_POST["fax"] ;
$mail=$_POST["mail"] ;
$message=$_POST["message"] ;

$sql = "INSERT INTO ALCHIWEB (demande, societe, adresse1, adresse2, cp, ville, pays, famille, civilite, nom, prenom, tel, mobile, fax, mail, message, date)
VALUES ( '$demande','$societe','$adresse1','$adresse2','$cp','$ville', '$pays', '$famille', '$civilite', '$nom', '$prenom', '$tel', '$mobile', '$fax', '$mail', '$message', NOW())";

$cnx = mysql_connect( "localhost", "xxx", "xxx" ) ;
$db = mysql_select_db( "phpmnl_email" ) ;

$mail=$_POST["mail"] ;

$sql = "INSERT INTO phpmnl_email (email)
VALUES ('$mail')";


j'ai juste recopié une partie en pensant que çà copierai dans les 2 bases .. mais çà marche pas comme çà je pense :D

Mammouth du PHP | 1353 Messages

26 sept. 2008, 14:23

Euh...

C'est bien de définir une chaine de caractère qui s'appelle $sql, mais faut pas oublier de faire un mysql_query si tu veux l'exécuter ;)
$sql = "....";
mysql_query($sql) or die(mysql_error());

$db = mysql_select_db( "phpmnl_email" ) ; 
$sql = "...2";
mysql_query($sql) or die(mysql_error());
Au passage je pense que tu n'as pas besoin de refaire un msyql_connect() si il s'agit du meme serveur (sauf si user différent bien sur...).
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 14 Messages

26 sept. 2008, 14:40

autant pour moi, je n'ai pas collé tout le code car il est asse long, je le renvoie sur mon mail, sur la page web ... je remet la parti avec query , mais apparament il faut que j'en mette un 2 eme si je comprend bien :p
<?php
//connection au serveur
$cnx = mysql_connect( "localhost", "xxx", "xxx" ) ;

//sélection de la base de données:
$db = mysql_select_db( "ALCHIWEB" ) ;

//récupération des valeurs des champs:
$demande=$_POST["demande"] ;
$societe=$_POST["societe"] ;
$adresse1=$_POST["adresse1"] ;
$adresse2=$_POST["adresse2"] ;
$CP=$_POST["CP"] ;
$ville=$_POST["ville"] ;
$pays=$_POST["pays"] ;
$famille=$_POST["famille"] ;
$civilite= $_POST["civilite"] ;
$nom = $_POST["nom"] ;
$prenom= $_POST["prenom"] ;
$tel= $_POST["tel"] ;
$mobile= $_POST["mobile"] ;
$fax=$_POST["fax"] ;
$mail=$_POST["mail"] ;
$message=$_POST["message"] ;
//création de la requête SQL:
$sql = "INSERT INTO ALCHIWEB (demande, societe, adresse1, adresse2, cp, ville, pays, famille, civilite, nom, prenom, tel, mobile, fax, mail, message, date)
VALUES ( '$demande','$societe','$adresse1','$adresse2','$cp','$ville', '$pays', '$famille', '$civilite', '$nom', '$prenom', '$tel', '$mobile', '$fax', '$mail', '$message', NOW())";



$msg = "Merci de votre attention $civilite $nom, nous avons bien reçu les informations suivantes: \n\n";
$msg .= "Demande:\t$demande\n";
$msg .= "Société:\t$societe\n";
$msg .= "Famille:\t$famille\n";
$msg .= "Civilité:\t$civilite\n";
$msg .= "Nom:\t$nom\n";
$msg .= "Prenom:\t$prenom\n";
$msg .= "Adresse1:\t$adresse1\n";
$msg .= "Adresse2:\t$adresse2\n";
$msg .= "Code Postal:\t$cp\n";
$msg .= "Ville:\t$ville\n";
$msg .= "Pays:\t$pays\n";
$msg .= "Tel:\t$tel\n";
$msg .= "Mobile:\t$mobile\n";
$msg .= "Fax:\t$fax\n";
$msg .= "E-Mail:\t$mail\n";
$msg .= "Message:\t$message\n\n";
$msg .= "Merci de ne pas répondre à ce message: \n\n";
$msg .= "Retourner sur le site : http://www.alchiweb.fr \n\n";
$recipient = "[email protected],";
$subject = "Demande auprès d'Alchiweb.fr, société: $societe, $civilite $nom";
$headers = "Bcc: $mail\r\n";
mail($recipient, $subject, $msg, $headers);


//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
:roll:
ha tu viens de rajouter une ligne :p je comprend mieu là :D je vais essayer dessuite :D
Modifié en dernier par elrime le 17 oct. 2008, 12:59, modifié 1 fois.

Mammouth du PHP | 1353 Messages

26 sept. 2008, 14:49

Disons que le fait que ta variable s'appelle $sql ne la fait pas s'executer toute seul pour autant.

Tu peux tres bien faire :
$toto = "INSERT INTO ... VALUES ...";
$titi = "INSERT INTO ... VALUES ...";
$tata = "Bonjour"; //l'effet est exactement le même : affecter une valeur a une variable, c'est tout
Il faudra pour exécuter ces requetes dans ta base utiliser la fonction mysql_query();
$toto = "INSERT INTO ... VALUES ...";
$titi = "INSERT INTO ... VALUES ...";
mysql_query($toto) or die(mysql_error()); //execute le 1er insert
mysql_query($titi) or die(mysql_error()); //execute le 2nd insert
Dans ton cas, comme tu changes de db, il est impératif d'effectuer le mysql_query AVANT de faire le second mysql_connect.
Ensuite comme tu écrases ta valeur $sql avec une nouvelle requete il faudra refaire un mysql_query pour executer cette nouvelle requete...

C'est plus clair ;) ?
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 14 Messages

26 sept. 2008, 14:57

et voilà,

çà fonctionne ! :D

merci pour tout Guilt92

:D