Bonjour, j'ai un soucis avec mon code, il crée deux lignes mysql : 1 pour les infos du devis et 1 pour la pièce jointe liée, avez-vous une solution? Je souhaiterais avoir les 2 sur la même ligne mysql, merci!
<?php
$servername = "localhost";
$username = "root";
$password = "";
try {
//Creating connection for mysql
$conn = new PDO("mysql:host=$servername;dbname=aaudet", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo " ";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=aaudet', 'root', '');
if(isset($_FILES['phpc']) AND !empty($_FILES['phpc']['name']))
{
$taillemax = 2097152;
$extensionValides = array('jpg', 'jpeg', 'png', 'pdf');
if($_FILES['phpc']['size'] <= $taillemax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['phpc']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionValides))
{
$chemin = "membres/devis/phpc/".$_POST['userid'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['phpc']['tmp_name'], $chemin);
if($resultat)
{
$updateavatar = $bdd->prepare('INSERT INTO devisauto SET phpc = :phpc ');
$updateavatar->execute(array(
'phpc' => $_POST['userid'].".".$extensionUpload,
));
}
else{
$msg = "Erreur lors de l'importation de votre pièce jointe";
}
}
else{
$msg = "Votre piece jointe doit être au format jpg, jpeg, pdf";
}
}
else{
$msg = "Votre piece jointe ne doit pas dépasser 2Mo";
}
}
if(isset($_POST["submit"])){
$hostname='localhost';
$username='root';
$password='';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=aaudet",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "INSERT INTO devisauto (userid, nom, prenom, adresse, tel, mail, ris, permissus, permisre, sc, uv, datea, phcg)
VALUES ('".$_POST["userid"]."','".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["adresse"]."','".$_POST["tel"]."','".$_POST["mail"]."','".$_POST["ris"]."','".$_POST["permissus"]."','".$_POST["permisre"]."','".$_POST["sc"]."','".$_POST["uv"]."','".$_POST["datea"]."','".$_POST["phcg"]."')";
if ($dbh->query($sql)) {
echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";
}
else{
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
<html>
<head>
<title>insert data in database using PDO(php data object)</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="main">
<form action="" enctype="multipart/form-data" method="post">
<label>N°CLIENT :</label>
<input type="text" name="userid" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
<label>Nom :</label>
<input type="text" name="nom" id="email" required="required" placeholder="john123@gmail.com"/><br/><br />
<label>Prénom :</label>
<input type="text" name="prenom" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Adresse :</label>
<input type="text" name="adresse" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Téléphone :</label>
<input type="text" name="tel" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>E-Mail :</label>
<input type="text" name="mail" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Relevé d'informations (Sinistres) :</label>
<input type="text" name="ris" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Suspension de permis? (Oui/Non) :</label>
<input type="text" name="permissus" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Retrait de permis? (Oui/Non) :</label>
<input type="text" name="permisre" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Second conducteur :</label>
<input type="text" name="sc" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Utilisation du véhicule :</label>
<input type="text" name="uv" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Date d'acquisition du véhicule :</label>
<input type="text" name="datea" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Photocopie du permis de conduire :</label>
<input type="file" name="phpc" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Photocopie de la carte grise :</label>
<input type="text" name="phcg" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<input type="submit" value=" Submit " name="submit"/><br />
</form>
</div>
<!-- Right side div -->
</div>
</body>
</html>
Bonjour,
peux-tu développer le contexte et en même temps, montrer la structure de ta base de données.
Deplus, un screen des deux lignes que tu parles ?
Merci
Mais il me semble de c'est normal car tu as deux requêtes.
Une préparée:
if($resultat)
{
$updateavatar = $bdd->prepare('INSERT INTO devisauto SET phpc = :phpc ');
$updateavatar->execute(array(
'phpc' => $_POST['userid'].".".$extensionUpload,
));
}
Elle gère l'extention du devis.
deuxième :
$sql = "INSERT INTO devisauto (userid, nom, prenom, adresse, tel, mail, ris, permissus, permisre, sc, uv, datea, phcg)
VALUES ('".$_POST["userid"]."','".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["adresse"]."','".$_POST["tel"]."','".$_POST["mail"]."','".$_POST["ris"]."','".$_POST["permissus"]."','".$_POST["permisre"]."','".$_POST["sc"]."','".$_POST["uv"]."','".$_POST["datea"]."','".$_POST["phcg"]."')";
Pour le client.
Donc, tu dois lier les deux.
Essaye plutôt ceci:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$phpc="";
try {
//Creating connection for mysql
$conn = new PDO("mysql:host=$servername;dbname=aaudet", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo " ";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
?>
<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=aaudet', 'root', '');
if(isset($_FILES['phpc']) AND !empty($_FILES['phpc']['name']))
{
$taillemax = 2097152;
$extensionValides = array('jpg', 'jpeg', 'png', 'pdf');
if($_FILES['phpc']['size'] <= $taillemax)
{
$extensionUpload = strtolower(substr(strrchr($_FILES['phpc']['name'], '.'), 1));
if(in_array($extensionUpload, $extensionValides))
{
$chemin = "membres/devis/phpc/".$_POST['userid'].".".$extensionUpload;
$resultat = move_uploaded_file($_FILES['phpc']['tmp_name'], $chemin);
if($resultat)
{
$phpc= $_POST['userid'].".".$extensionUpload;
}
else{
$msg = "Erreur lors de l'importation de votre pièce jointe";
}
}
else{
$msg = "Votre piece jointe doit être au format jpg, jpeg, pdf";
}
}
else{
$msg = "Votre piece jointe ne doit pas dépasser 2Mo";
}
}
if(isset($_POST["submit"])){
$hostname='localhost';
$username='root';
$password='';
try {
$dbh = new PDO("mysql:host=$hostname;dbname=aaudet",$username,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // <== add this line
$sql = "INSERT INTO devisauto (userid, nom, prenom, adresse, tel, mail, ris, permissus, permisre, sc, uv, datea, phcg,phpc)
VALUES ('".$_POST["userid"]."','".$_POST["nom"]."','".$_POST["prenom"]."','".$_POST["adresse"]."','".$_POST["tel"]."','".$_POST["mail"]."','".$_POST["ris"]."','".$_POST["permissus"]."','".$_POST["permisre"]."','".$_POST["sc"]."','".$_POST["uv"]."','".$_POST["datea"]."','".$_POST["phcg"]."','".$phpc."')";
if ($dbh->query($sql)) {
echo "<script type= 'text/javascript'>alert('New Record Inserted Successfully');</script>";
}
else{
echo "<script type= 'text/javascript'>alert('Data not successfully Inserted.');</script>";
}
$dbh = null;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
?>
<html>
<head>
<title>insert data in database using PDO(php data object)</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id="main">
<form action="" enctype="multipart/form-data" method="post">
<label>N°CLIENT :</label>
<input type="text" name="userid" id="name" required="required" placeholder="Please Enter Name"/><br /><br />
<label>Nom :</label>
<input type="text" name="nom" id="email" required="required" placeholder="john123@gmail.com"/><br/><br />
<label>Prénom :</label>
<input type="text" name="prenom" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Adresse :</label>
<input type="text" name="adresse" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Téléphone :</label>
<input type="text" name="tel" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>E-Mail :</label>
<input type="text" name="mail" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Relevé d'informations (Sinistres) :</label>
<input type="text" name="ris" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Suspension de permis? (Oui/Non) :</label>
<input type="text" name="permissus" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Retrait de permis? (Oui/Non) :</label>
<input type="text" name="permisre" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Second conducteur :</label>
<input type="text" name="sc" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Utilisation du véhicule :</label>
<input type="text" name="uv" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Date d'acquisition du véhicule :</label>
<input type="text" name="datea" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Photocopie du permis de conduire :</label>
<input type="file" name="phpc" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<label>Photocopie de la carte grise :</label>
<input type="text" name="phcg" id="city" required="required" placeholder="Please Enter Your City"/><br/><br />
<input type="submit" value=" Submit " name="submit"/><br />
</form>
</div>
<!-- Right side div -->
</div>
</body>
</html>
Bonsoir.
Avant de t'inquiéter du nombre deux requêtes SQL tu fais, demandes toi plutôt pour quelle raison tu fais deux connexion à ta base de données à la suite, je parle bien sûr des deux premières qui sont stockées dans les variables $conn
et $bdd
.
Sinon, au lieu de vouloir traiter ton formulaire avec deux conditions distinctes :
if(isset($_FILES['phpc']) AND !empty($_FILES['phpc']['name']))
Et :
if(isset($_POST["submit"])){
Fais le en une seule condition :
if (isset($_POST["submit"])) {
if (!isset($_FILES['phpc']) || empty($_FILES['phpc']['name'])) {
// tu renvoies l'erreur
}
// tu fais tes autres vérifications et seulement si c'est bon, tu fais l'upload du fichier, ta connexion à SQL et tes requêtes
}
Étant donné que tu as tout dans un seul formulaire, je ne vois pas ce que ça t'apporte de séparer le traitement du fichier et les autres données du formulaire dans deux parties différentes.