J'ai 2 table users et une table account maintenant j'ai récupéré les informations grâce à un formulaire dans la table usées et le reste dans la table account maintenant je veux récupérer la clé primaire de la usées et l'introduire dans la table account et j'y arrive pas j'ai déjà essayé $fk = MySQL_insert_id(); mais ça n'a pas marché j'ai essayé plein de truc aussi sans succès vous verrez dans mon code tout à l'heure en commentaire
Voici le code
<!--Page de creation de compte...-->
<?php
session_start();//Demarre une session
include('bd/connexionDB.php'); // Fichier PHP contenant la connexion à votre BDD
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
// On se place sur le bon formulaire grâce au "name" de la balise "input"
if (isset($_POST['register'])){
$lname = htmlentities(trim($lname)); // On récupère le lname$lname
$fname = htmlentities(trim($fname)); // on récupère le prélname$lname
$mail = htmlentities(strtolower(trim($mail))); // On récupère le mail
$tel = $_POST['tel']; // On recupere le tel
$gender = $_POST['gender']; //gender
$dob = $_POST['dob']; //dob
$adress = htmlentities(trim($adress)); //adresse
$city = htmlentities(trim($city)); //city
$country = $_POST['country']; //country
$pass = trim($pass); // On récupère le mot de passe
$confpass = trim($confpass); // On récupère la confirmation du mot de passe
Merci de colorer votre code à l'aide du bouton Code
Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: php;">Votre code ici</pre>.
Manque de Politesse
Votre message ne comporte pas ou peu de formules de politesse (« Bonjour », « Merci », « Au revoir », etc.). Les règles du site exigent que chaque nouveau message comporte un minimum de politesse. Après tout, les gens qui répondent le font gratuitement, sur leur temps libre. Ils méritent bien un minimum de considération, n'est-ce pas ?
Manque de recherche
La question que vous posez est très fréquente, cela démontre un manque de recherche évident. Internet et ce forum fourmillent de ressources répondant à votre besoin.
Quand tu auras répondu à la demande de Lamecarlate on pourra mieux t'aider, mais franchement tu devrais repartir de zéro, manifestement tu es parti d'un tuto ou code très ancien que tu as essayé d'adapter, mais il y a des incohérences.
Veuillez m'excuser svp. Si mon ton paraissait irrespectueux ou discourtois. Loin de moi cette idée. Je suis aussi très nouveau dans le développement web du coup je fais beaucoup de recherche mais je comprends pas tout. Là je m'exerce à pouvoir enregistrer des donnée issue d'un seul formulaire dans 2 table avec une relation entre ces tables j'ai vu sur beaucoup de forum lastinsertid() pour récupérer et la clé de la table 1 mais comment la stocker dans une variable pour l'introduire dans ma table 2 j'y arrive pas j'ai essayé beaucoup de choses déjà. Je sais pas si cela à quelque chose à voir avec la façon dont j'ai connecté ma bdd j'ai suivi un tutoriel et j'ai appliqué la méthode ça m'a facilité la vie même je l'ai pas toute comprise voici le tutoriel ici https://www.sitedudev.com/cours/creer-son-site/4f3fed186cd4472ca98413b476d18474 merci de m'aider
philodick a écrit:
>
Oui t'as raison pour le code PHP je suis parti d'un tuto parce que je n'avais pas encore d'expérience en PHP jus qu'il y a peu je faisait que du WordPress. Puis que du HTML et css ensuite
- Edité par GeorgeoAgbahungba1993 12 septembre 2019 à 18:36:33
Je veux recuperer le id de users et le mettre dans account dans fk_users_id
<?php
// Déclaration d'une nouvelle classe
class connexionDB {
private $host = 'localhost'; // nom de l'host
private $name = 'db_bk'; // nom de la base de donnée
private $user = 'root'; // utilisateur
private $pass = ''; // mot de passe
//private $pass = ''; // Ne rien mettre si on est sous windows
private $connexion;
function __construct($host = null, $name = null, $user = null, $pass = null){
if($host != null){
$this->host = $host;
$this->name = $name;
$this->user = $user;
$this->pass = $pass;
}
try{
$this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name,
$this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8',
PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
}catch (PDOException $e){
echo 'Erreur : Impossible de se connecter à la BDD !';
die();
}
}
public function query($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
return $req;
}
public function insert($sql, $data = array()){
$req = $this->connexion->prepare($sql);
$req->execute($data);
}
}
// Faire une connexion à votre fonction
$DB = new connexionDB();
?>
//Voici le code php
<?php
session_start(); //Session utilisateur
include('bd/connexionDB.php'); //Connexion base de donnee
// S'il y a une session alors on ne retourne plus sur cette page
if (isset($_SESSION['id'])){
header('Location: index.php');
exit;
}
// Si la variable "$_Post" contient des informations alors on les traitres
if(!empty($_POST)){
extract($_POST);
$valid = true;
// Recuperation des donnee du formulaire 'register'
if (isset($_POST['register'])){
$lname = htmlentities(trim($lname));
$fname = htmlentities(trim($fname));
$mail = htmlentities(strtolower(trim($mail)));
$tel = $_POST['tel'];
$gender = $_POST['gender'];
$dob = $_POST['dob'];
$adress = htmlentities(trim($adress));
$city = htmlentities(trim($city));
$country = $_POST['country'];
$pass = trim($pass);
$confpass = trim($confpass);
$type = $_POST['type'];
$currency = $_POST['currency'];
// Vérification du nom
if(empty($lname)){
$valid = false;
$er_lname = ("Last name is required");
}
// Vérification du prénom
if(empty($fname)){
$valid = false;
$er_fname = ("First name is required");
}
// Vérification du mail
if(empty($mail)){
$valid = false;
$er_mail = ("E-mail is required");
// On vérifit que le mail est dans le bon format
}elseif(!preg_match("/^[a-z0-9\-_.]+@[a-z]+\.[a-z]{2,3}$/i", $mail)){
$valid = false;
$er_mail = "Invalid E-mail";
}else{
// On vérifit que le mail est disponible
$req_mail = $DB->query("SELECT mail FROM users WHERE mail = ?",
array($mail));
$req_mail = $req_mail->fetch();
if ($req_mail['mail'] <> ""){
$valid = false;
$er_mail = "This mail is already registered";
}
}
// Vérification du tel
if(empty($tel)){
$valid = false;
$er_tel = ("Phone number is required");
}
// Vérification du mot de passe
if(empty($pass)) {
$valid = false;
$er_pass = "Password is required";
}elseif($pass != $confpass){
$valid = false;
$er_pass = "The two password do not match";
}
// Vérification adress
if(empty($adress)){
$valid = false;
$er_adress = ("Adress is required");
}
// Vérification city
if(empty($city)){
$valid = false;
$er_city = ("City is required");
}
// Si toutes les conditions sont remplies alors on fait le traitement
if($valid){
$reg_date = date('Y-m-d H:i:s');
$account_number = "1234567890";
$bic_swift = "0987654321";
$iban = "ab12cd34ef56";
$solde = "0";
// On insert nos données dans la table users
$DB->insert("INSERT INTO users (lname, fname, mail, tel, gender, dob, pass, adress, city, country, reg_date) VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
array($lname, $fname, $mail, $tel, $gender, $dob, $pass, $adress, $city, $country, $reg_date));
// On insert d'autres données dans la table account
$DB->insert("INSERT INTO account (acctype, currency, account_number, bic_swift, iban, solde, fk_id_users) VALUES
(?, ?, ?, ?, ?, ?, ?)",
array($type, $currency, $account_number, $bic_swift, $iban, $solde, $fk_users_id));
header('Location: success.php');
exit;
}
}
}
- Edité par GeorgeoAgbahungba1993 13 septembre 2019 à 0:27:23
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales
Pas d'aide concernant le code par MP, le forum est là pour ça :)
N'oubliez pas d'activer les erreurs PDO.
N'oubliez pas d'activer les erreurs PDO.