probleme requete sql - SQL/NoSQL - Programmation
Marsh Posté le 15-12-2023 à 07:53:25
Code :
|
Ton sprintf ne fait rien comme échange de valeur...
https://www.php.net/manual/en/function.sprintf.php
Tu utilises un outil d’édition de code qui colorie la syntaxe ?
Pacque tu aurais dut le voir tout de suite...
De plus ta requête n'est pas du tout sécurisé, si tu le peux passe plutôt par PDO qui te nettoiera et protégera tes variable en entré.
https://www.php.net/manual/fr/pdo.prepare.php
Sinon regarde un exemple ou le sprintf est bien utilisé :
https://www.php.net/manual/fr/function.mysql-query.php
Marsh Posté le 16-12-2023 à 11:27:45
Bonjour,
Déjà, merci d'utiliser les balises
Code :
|
Ca sera bien plus propre.
Comme ça, côté serveur, pour récupérer le libellé, tu fais :
Code :
|
Marsh Posté le 19-12-2023 à 22:37:07
j'ai pourtant tout simplifier mais ca me fait la même erreur au secours s'il vous plait
<?php
include('./config.php'); // sql
if(isset($_POST['ref']))
{
//********************** on recup le dernier id de facture***************************
mysql_select_db($database_dbprotect, $dbprotect);
$query2 = "SELECT * FROM factures ORDER BY id DESC LIMIT 1";
$resultconnect2 = mysql_query($query2, $dbprotect) or die(mysql_error());
while ($rowconnect2 = mysql_fetch_array($resultconnect2))
{
$idfact = $rowconnect2['id']+1;
}
// on passe toutes les variables $POST en variables
$ref = $_POST['ref'];
$descript = $_POST['descript2'];
$quantite = $_POST['nb'];
$prix = $_POST['prix'];
$prixtotal = $_POST['prixtotal'];
// on fait l'INSERT dans la base de données
$insert_donnee = sprintf("INSERT INTO reffacts (id, idfact, ref, descript, quantité, prix, prixtotal) VALUES ('', '$idfact', '$ref', '$descript', '$quantite', '$prix', '$prixtotal')" );
mysql_select_db($database_dbprotect, $dbprotect);
$result = mysql_query($insert_donnee, $dbprotect) or die(mysql_error());
redir('?af=addok'); // redirection si création réussie
}
else
{
?>
<center>
<?php
if (isset($_GET['af']))
{
$p=$_GET['af'];
if($p=="addok" )
{
echo "<font color=limegreen>Ajout Ok !</font>";
}
}
?>
Ajouter une ligne de réference: <font color=red><b>(VALIDER)</font></b>
<br><br>
<form action="" method="post">
ref:<input type="text" name="ref" id="ref" value="" size="3">
<input type="text" name="descript" id="descript" value="" size="28"><br>
nbre:<input type="text" name="nb" id="nb" value="1" size="3">
prix unit:<input type="text" name="prix" id="prix" value="" size="3">
prix total:<input type="text" name="prixtotal" id="prixtotal" value="" size="3">
<font color=red><b><input type="submit" name="Submit" value="ajouter la ligne dans la facture"> !!!</font></b>
</form>
</center>
<?php
}
?>
Marsh Posté le 15-12-2023 à 05:05:44
bonjour;
voici mon code php/html:
<?php
include('./config.php'); // sql
if(isset($_POST['ref']))
{
//********************** on recup le solde actuel ***************************
//********************** on recup le dernier id de facture***************************
mysql_select_db($database_dbprotect, $dbprotect);
$query2 = "SELECT * FROM factures ORDER BY id DESC LIMIT 1";
$resultconnect2 = mysql_query($query2, $dbprotect) or die(mysql_error());
while ($rowconnect2 = mysql_fetch_array($resultconnect2))
{
$idfact = $rowconnect2['id']+1;
}
// on passe toutes les variables $POST en variables
$ref2 = $_POST['ref2'];
if($ref2=="" )
{
$ref = $_POST['ref'];
if($ref=="JARD" )
{
$descript="1h de jardinage";
}
elseif($ref=="4hJARD" )
{
$descript="1/2 journée de jardinage";
}
elseif($ref=="1jJARD" )
{
$descript="1 journée de jardinage";
}
elseif($ref=="INFO" )
{
$descript="1h d'informatique";
}
elseif($ref=="4hINFO" )
{
$descript="1/2 journée d'informatique";
}
elseif($ref=="1jJARD" )
{
$descript="1 journée d'informatique";
}
elseif($ref=="BRICO" )
{
$descript="1h de bricolage";
}
elseif($ref=="4hBRICO" )
{
$descript="1/2 journée de bricolage";
}
elseif($ref=="1jBRICO" )
{
$descript="1 journée de bricolage";
}
elseif($ref=="MENAG" )
{
$descript="1h de ménage";
}
elseif($ref=="4hMENAG" )
{
$descript="1/2 journée de ménage";
}
elseif($ref=="1jMENAG" )
{
$descript="1 journée de ménage";
}
elseif($ref=="PISC" )
{
$descript="1h d'entretien piscine";
}
elseif($ref=="4hPISC" )
{
$descript="1/2 journée d'entretien de piscine";
}
elseif($ref=="1jPISC" )
{
$descript="1 journée d'entretien de piscine";
}
elseif($ref=="DECHR" )
{
$descript="frais de mise à la décharge";
}
elseif($ref=="DEV" )
{
$descript="Facture du devis n°DV___";
}
elseif($ref=="MAT" )
{
$descript="prix des materiaux";
}
else
{
}
}
else
{
$ref = $_POST['ref2'];
$descript = $_POST['descript2'];
}
$quantite = $_POST['nb'];
$prix = $_POST['prix'];
$prixtotal = $_POST['prixtotal'];
// on fait l'INSERT dans la base de données
$insert_donnee = sprintf("INSERT INTO reffacts (id, idfact, ref, descript, quantité, prix, prixtotal) VALUES ('', '$idfact', '$ref', '$descript', '$quantite', '$prix', '$prixtotal')" );
mysql_select_db($database_dbprotect, $dbprotect);
$result = mysql_query($insert_donnee, $dbprotect) or die(mysql_error());
redir('?af=addok'); // redirection si création réussie
}
else
{
?>
<center>
<?php
if (isset($_GET['af']))
{
$p=$_GET['af'];
if($p=="addok" )
{
echo "<font color=limegreen>Ajout Ok !</font>";
}
}
?>
Ajouter une ligne de réference: <font color=red><b>(VALIDER)</font></b>
<br><br>
<form action="" method="post" name="add">
Type: <select name="ref" id="ref">
<option value="JARD">JARD - 1h de jardinage</option>
<option value="4hJARD">JARD - 1/2 journée jardinage</option>
<option value="1jJARD">JARD - 1 journée jardinage</option>
<option value="---">----------------------</option>
<option value="INFO">INFO - 1h d'informatique</option>
<option value="4hINFO">INFO - 1/2 journée d'info</option>
<option value="1jINFO">INFO - 1 journée d'info</option>
<option value="---">----------------------</option>
<option value="BRICO">BRICO - 1h de bricolage</option>
<option value="4hBRICO">BRICO - 1/2 journée bricolage</option>
<option value="1jBRICO">BRICO - 1 journée bricolage</option>
<option value="---">----------------------</option>
<option value="MENAG">MENAG - 1h de ménage</option>
<option value="4hMENAG">MENAG - 1/2 journée de ménage</option>
<option value="1jMENAG">MENAG - 1 journée de ménage</option>
<option value="---">----------------------</option>
<option value="PISC">PISC - 1h d'entretien piscine</option>
<option value="4hPISC">PISC - 1/2 journée piscine</option>
<option value="1jPISC">PISC - 1 journée piscine</option>
<option value="---">----------------------</option>
<option value="DECHR">DECHR - Frais de mise à la décharge</option>
<option value="MAT">MAT - Prix des materiaux</option>
</select><br>
<b>OU</b> ref:<input type="text" name="ref2" id="ref2" value="" size="3">-<input type="text" name="descript2" id="descript2" value="" size="28"><br>
nbre:<input type="text" name="nb" id="nb" value="1" size="3">
prix unit:<input type="text" name="prix" id="prix" value="" size="3">
prix total:<input type="text" name="prixtotal" id="prixtotal" value="" size="3">
<font color=red><b><input type="submit" name="Submit" value="ajouter la ligne dans la facture"> !!!</font></b>
</form>
</center>
<?php
}
?>
et voici mon erreur:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '?, prix, prixtotal) VALUES ('', '89', 'JARD', '1h de jardinage', '1', '20', '...' at line 1
je comprend pas aidez moi svp
Message édité par axd13 le 15-12-2023 à 05:27:04