Insérer des variables dans une table en php
sajodia
Messages postés
38
Date d'inscription
Statut
Membre
Dernière intervention
-
freto Messages postés 1543 Date d'inscription Statut Membre Dernière intervention -
freto Messages postés 1543 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voila le script que j'ai réalisé.Mais mon proplème est que j'arrive pas à insérer dans mes 2tables.Je ne vois pas d'ou vient le problème.aidez moi svp!!!!!!!
<?php
$titre="Nouvelle Commande";
include_once("entete.php");
include_once("menu.php");
include_once("configuration.php");
?>
<div id="corps">
<?php
//sauvegarde de la date au format Mysql
$date=date('Y-m-d');
echo $date.'<br/>';
$id_client= isset($_POST['id_client']) ? $_POST['id_client'] : '';
$nombre_article= isset($_POST['nombre_article']) ? $_POST['nombre_article'] : '';
for($p=1;$p<=$nombre_article;$p++)
{
$quantite_article = "quantite_article_" . $p;
$$quantite_article = isset($_POST["$quantite_article"]) ? $_POST["$quantite_article"] : '';
$$quantite_article= mysql_real_escape_string(htmlspecialchars($$quantite_article));
$id_article = "id_article_" . $p;
$$id_article = isset($_POST["$id_article"]) ? $_POST["$id_article"] : '';
$$id_article= mysql_real_escape_string(htmlspecialchars($$id_article));
}
$selection= isset($_POST['selection']) ? $_POST['selection'] : '';
$valide= isset($_POST['valide']) ? $_POST['valide'] : '';
if (!$selection and !$valide)
{
?>
<h2>Nouvelle Commande</h2>
<form action="creation_commande.php" method="POST">
<table>
<tr><td>
Selection du Client:
</td><td>
<select name="id_client">
<?php
// Sélectionner les champs "nom_emplacement"
//selection emplacement plein
$req5="select id_client,nom_client,prenom_client,num_client from client";
$reponse5 = mysql_query($req5);
while ( $donnees5 = mysql_fetch_array($reponse5) )
{
$j=$donnees5['nom_client'];
$id=$donnees5['id_client'];
echo '<option value="'.$id.'">'.$j.'</option>';
}
?>
</select>
</td></tr>
<tr><td>
Nombre d'article diffèrents :
</td><td>
<select name="nombre_article">
<?php
// Nombre article different disponible
$req6="SELECT COUNT(*) AS nombre_article FROM article";
$reponse6 = mysql_query($req6);
$donnees6 = mysql_fetch_array($reponse6);
$nombre_article= $donnees6['nombre_article'];
for ($i=1;$i<=$nombre_article;$i++)
{
echo '<option >'.$i.'</option>';
}
?>
</select>
</td></tr>
<label for="numero_commande">Numéro commande : </label>
<input name="numero_commande" /> <br />
<label for="date_commande">Date commande : </label>
<input onclick="ds_sh(this);" name="date_commande" readonly="readonly" style="cursor: text" /><br />
<label for="montant_global">Montant global : </label>
<input name="montant_global" /> <br />
<tr><td>
</td><td>
<input type="submit" name="selection" value="OK"/>
</td></tr>
</table>
</form>
<?php
}
//on recupere les valeurs
if ($selection)
{
$selection= mysql_real_escape_string(htmlspecialchars($selection));
$id_client= mysql_real_escape_string(htmlspecialchars($id_client));
$nombre_article= mysql_real_escape_string(htmlspecialchars($nombre_article));
echo 'Client n° : '.$id_client.'<br/>';
echo 'Code article different :'.$nombre_article.'<br/>';
echo '<form action="creation_commande.php" method="POST">';
for($l=1;$l<=$nombre_article;$l++)
{
echo 'Article n° :'.$l.' ';
echo '<select name="id_article_'.$l.'">';
// Sélectionner les champs "Type_article (ou le nom du materiel)"
$reponse = mysql_query("select nom_materiel from materiel");
while ( $donnees = mysql_fetch_array($reponse) )
{
$j=$donnees['nom_materiel'];
$w=$donnees['id_materiel'];
echo '<option value="'.$w.'">'.$j.'</option>';
}
echo '</select>';
echo ' Quantité : ';
echo '<input type="text" name="quantite_article_'.$l.'" /><br/>';
}
echo '<p><input type="submit" value="OK" name="valide" /></p>';
echo '<input type="hidden" name="id_client" value="'.$id_client.'" />';
echo '<input type="hidden" name="nombre_article" value="'.$nombre_article.'" />';
echo '</form>';
}
//on insert dans la base
if ($valide)
{
$valide= mysql_real_escape_string(htmlspecialchars($valide));
// insertion de la nouvelle commande
$req="INSERT INTO `dicteenum`.`commande` (`id_commande` ,`client_id_client` ,`numero_commande`,`date_commande`,`montant_global`)
VALUES ('','".$_POST['id_client']."','".$_POST['numero_commande']."','".$_POST['date_commande']."','".$_POST['montant_global']."')";
$reponse = mysql_query($req);
// aide
if(mysql_error())
{
echo 'Debug : '.mysql_error().'<br />';
}else{
echo 'pas d\'erreur'.'<br />';
}
$req2="select max(id_commande) as id_commande from commande";
$reponse2=mysql_query($req2);
$donnees2=mysql_fetch_array($reponse2);
$id_commande=$donnees2['id_commande'];
for ($p=1;$p<=$nombre_article;$p++)
{
$id_article = "id_article_" . $p;
$quantite_article = "quantite_article_" . $p;
$req3="insert into contient values ('$id_commande','${$nom_materiel}','${$quantite_article}')";
$reponse3=mysql_query($req3);
}
echo '<br/>Nouvelle commande créée';
}
?>
</div>
<?php
include_once("pied_de_page.php");
?>
voila le script que j'ai réalisé.Mais mon proplème est que j'arrive pas à insérer dans mes 2tables.Je ne vois pas d'ou vient le problème.aidez moi svp!!!!!!!
<?php
$titre="Nouvelle Commande";
include_once("entete.php");
include_once("menu.php");
include_once("configuration.php");
?>
<div id="corps">
<?php
//sauvegarde de la date au format Mysql
$date=date('Y-m-d');
echo $date.'<br/>';
$id_client= isset($_POST['id_client']) ? $_POST['id_client'] : '';
$nombre_article= isset($_POST['nombre_article']) ? $_POST['nombre_article'] : '';
for($p=1;$p<=$nombre_article;$p++)
{
$quantite_article = "quantite_article_" . $p;
$$quantite_article = isset($_POST["$quantite_article"]) ? $_POST["$quantite_article"] : '';
$$quantite_article= mysql_real_escape_string(htmlspecialchars($$quantite_article));
$id_article = "id_article_" . $p;
$$id_article = isset($_POST["$id_article"]) ? $_POST["$id_article"] : '';
$$id_article= mysql_real_escape_string(htmlspecialchars($$id_article));
}
$selection= isset($_POST['selection']) ? $_POST['selection'] : '';
$valide= isset($_POST['valide']) ? $_POST['valide'] : '';
if (!$selection and !$valide)
{
?>
<h2>Nouvelle Commande</h2>
<form action="creation_commande.php" method="POST">
<table>
<tr><td>
Selection du Client:
</td><td>
<select name="id_client">
<?php
// Sélectionner les champs "nom_emplacement"
//selection emplacement plein
$req5="select id_client,nom_client,prenom_client,num_client from client";
$reponse5 = mysql_query($req5);
while ( $donnees5 = mysql_fetch_array($reponse5) )
{
$j=$donnees5['nom_client'];
$id=$donnees5['id_client'];
echo '<option value="'.$id.'">'.$j.'</option>';
}
?>
</select>
</td></tr>
<tr><td>
Nombre d'article diffèrents :
</td><td>
<select name="nombre_article">
<?php
// Nombre article different disponible
$req6="SELECT COUNT(*) AS nombre_article FROM article";
$reponse6 = mysql_query($req6);
$donnees6 = mysql_fetch_array($reponse6);
$nombre_article= $donnees6['nombre_article'];
for ($i=1;$i<=$nombre_article;$i++)
{
echo '<option >'.$i.'</option>';
}
?>
</select>
</td></tr>
<label for="numero_commande">Numéro commande : </label>
<input name="numero_commande" /> <br />
<label for="date_commande">Date commande : </label>
<input onclick="ds_sh(this);" name="date_commande" readonly="readonly" style="cursor: text" /><br />
<label for="montant_global">Montant global : </label>
<input name="montant_global" /> <br />
<tr><td>
</td><td>
<input type="submit" name="selection" value="OK"/>
</td></tr>
</table>
</form>
<?php
}
//on recupere les valeurs
if ($selection)
{
$selection= mysql_real_escape_string(htmlspecialchars($selection));
$id_client= mysql_real_escape_string(htmlspecialchars($id_client));
$nombre_article= mysql_real_escape_string(htmlspecialchars($nombre_article));
echo 'Client n° : '.$id_client.'<br/>';
echo 'Code article different :'.$nombre_article.'<br/>';
echo '<form action="creation_commande.php" method="POST">';
for($l=1;$l<=$nombre_article;$l++)
{
echo 'Article n° :'.$l.' ';
echo '<select name="id_article_'.$l.'">';
// Sélectionner les champs "Type_article (ou le nom du materiel)"
$reponse = mysql_query("select nom_materiel from materiel");
while ( $donnees = mysql_fetch_array($reponse) )
{
$j=$donnees['nom_materiel'];
$w=$donnees['id_materiel'];
echo '<option value="'.$w.'">'.$j.'</option>';
}
echo '</select>';
echo ' Quantité : ';
echo '<input type="text" name="quantite_article_'.$l.'" /><br/>';
}
echo '<p><input type="submit" value="OK" name="valide" /></p>';
echo '<input type="hidden" name="id_client" value="'.$id_client.'" />';
echo '<input type="hidden" name="nombre_article" value="'.$nombre_article.'" />';
echo '</form>';
}
//on insert dans la base
if ($valide)
{
$valide= mysql_real_escape_string(htmlspecialchars($valide));
// insertion de la nouvelle commande
$req="INSERT INTO `dicteenum`.`commande` (`id_commande` ,`client_id_client` ,`numero_commande`,`date_commande`,`montant_global`)
VALUES ('','".$_POST['id_client']."','".$_POST['numero_commande']."','".$_POST['date_commande']."','".$_POST['montant_global']."')";
$reponse = mysql_query($req);
// aide
if(mysql_error())
{
echo 'Debug : '.mysql_error().'<br />';
}else{
echo 'pas d\'erreur'.'<br />';
}
$req2="select max(id_commande) as id_commande from commande";
$reponse2=mysql_query($req2);
$donnees2=mysql_fetch_array($reponse2);
$id_commande=$donnees2['id_commande'];
for ($p=1;$p<=$nombre_article;$p++)
{
$id_article = "id_article_" . $p;
$quantite_article = "quantite_article_" . $p;
$req3="insert into contient values ('$id_commande','${$nom_materiel}','${$quantite_article}')";
$reponse3=mysql_query($req3);
}
echo '<br/>Nouvelle commande créée';
}
?>
</div>
<?php
include_once("pied_de_page.php");
?>
A voir également:
- Insérer des variables dans une table en php
- Insérer une vidéo dans powerpoint - Guide
- Table des matières word - Guide
- Table ascii - Guide
- Insérer signature word - Guide
- Comment insérer des points de suite sur word - Guide
4 réponses
Trop de code sans les balises < code > pour présenter sur le forum, bah sa tue le code ^^
Donc je peut rien te dire quand a tes tests, c'est illisible, donc je sais pas si sa passe forcément par ton insert ou non.
Pour ta requete, essaie de récupérer d'abord les valeurs de $_POST dans des variables puis de faire ta requete avec ces variables, au lieu de directement poser les $POST dans la chaine.
Donc je peut rien te dire quand a tes tests, c'est illisible, donc je sais pas si sa passe forcément par ton insert ou non.
Pour ta requete, essaie de récupérer d'abord les valeurs de $_POST dans des variables puis de faire ta requete avec ces variables, au lieu de directement poser les $POST dans la chaine.
Voici mon code ça ne marche tjrs pa
<?php $titre="Nouvelle Commande"; include_once("entete.php"); include_once("menu.php"); include_once("configuration.php"); ?> <div id="corps"> <?php //sauvegarde de la date au format Mysql $date=date('Y-m-d'); echo $date.'<br/>'; $id_client= isset($_POST['id_client']) ? $_POST['id_client'] : ''; $nombre_article= isset($_POST['nombre_article']) ? $_POST['nombre_article'] : ''; for($p=1;$p<=$nombre_article;$p++) { $quantite_article = "quantite_article_" . $p; $$quantite_article = isset($_POST["$quantite_article"]) ? $_POST["$quantite_article"] : ''; $$quantite_article= mysql_real_escape_string(htmlspecialchars($$quantite_article)); $id_article = "id_article_" . $p; $$id_article = isset($_POST["$id_article"]) ? $_POST["$id_article"] : ''; $$id_article= mysql_real_escape_string(htmlspecialchars($$id_article)); } $selection= isset($_POST['selection']) ? $_POST['selection'] : ''; $valide= isset($_POST['valide']) ? $_POST['valide'] : ''; if (!$selection and !$valide) { ?> <h2>Nouvelle Commande</h2> <form action="creation_commande.php" method="POST"> <table> <tr><td> Selection du Client: </td><td> <select name="id_client"> <?php // Sélectionner les champs "nom_emplacement" //selection emplacement plein $req5="select id_client,nom_client,prenom_client,num_client from client"; $reponse5 = mysql_query($req5); while ( $donnees5 = mysql_fetch_array($reponse5) ) { $j=$donnees5['nom_client']; $id=$donnees5['id_client']; echo '<option value="'.$id.'">'.$j.'</option>'; } ?> </select> </td></tr> <tr><td> Nombre d'article diffèrents : </td><td> <select name="nombre_article"> <?php // Nombre article different disponible $req6="SELECT COUNT(*) AS nombre_article FROM article"; $reponse6 = mysql_query($req6); $donnees6 = mysql_fetch_array($reponse6); $nombre_article= $donnees6['nombre_article']; for ($i=1;$i<=$nombre_article;$i++) { echo '<option >'.$i.'</option>'; } ?> </select> </td></tr> <label for="numero_commande">Numéro commande : </label> <input name="numero_commande" /> <br /> <label for="date_commande">Date commande : </label> <input onclick="ds_sh(this);" name="date_commande" readonly="readonly" style="cursor: text" /><br /> <label for="montant_global">Montant global : </label> <input name="montant_global" /> <br /> <tr><td> </td><td> <input type="submit" name="selection" value="OK"/> </td></tr> </table> </form> <?php } //on recupere les valeurs if ($selection) { $selection= mysql_real_escape_string(htmlspecialchars($selection)); $id_client= mysql_real_escape_string(htmlspecialchars($id_client)); $nombre_article= mysql_real_escape_string(htmlspecialchars($nombre_article)); echo 'Client n° : '.$id_client.'<br/>'; echo 'Code article different :'.$nombre_article.'<br/>'; echo '<form action="creation_commande.php" method="POST">'; for($l=1;$l<=$nombre_article;$l++) { echo 'Article n° :'.$l.' '; echo '<select name="id_article_'.$l.'">'; // Sélectionner les champs "Type_article (ou le nom du materiel)" $reponse = mysql_query("select nom_materiel from materiel"); while ( $donnees = mysql_fetch_array($reponse) ) { $j=$donnees['nom_materiel']; $w=$donnees['id_materiel']; echo '<option value="'.$w.'">'.$j.'</option>'; } echo '</select>'; echo ' Quantité : '; echo '<input type="text" name="quantite_article_'.$l.'" /><br/>'; } echo '<p><input type="submit" value="OK" name="valide" /></p>'; echo '<input type="hidden" name="id_client" value="'.$id_client.'" />'; echo '<input type="hidden" name="nombre_article" value="'.$nombre_article.'" />'; echo '</form>'; } //on insert dans la base if ($valide) { $valide= mysql_real_escape_string(htmlspecialchars($valide)); // insertion de la nouvelle commande $req="INSERT INTO `dicteenum`.`commande` (`id_commande` ,`client_id_client` ,`numero_commande`,`date_commande`,`montant_global`) VALUES ('','".$_POST['id_client']."','".$_POST['numero_commande']."','".$_POST['date_commande']."','".$_POST['montant_global']."')"; $reponse = mysql_query($req); // aide if(mysql_error()) { echo 'Debug : '.mysql_error().'<br />'; }else{ echo 'pas d\'erreur'.'<br />'; } $req2="select max(id_commande) as id_commande from commande"; $reponse2=mysql_query($req2); $donnees2=mysql_fetch_array($reponse2); $id_commande=$donnees2['id_commande']; for ($p=1;$p<=$nombre_article;$p++) { $id_article = "id_article_" . $p; $quantite_article = "quantite_article_" . $p; $req3="insert into contient values ('$id_commande','${$nom_materiel}','${$quantite_article}')"; $reponse3=mysql_query($req3); } echo '<br/>Nouvelle commande créée'; } ?> </div> <?php include_once("pied_de_page.php"); ?>
Bon, j'ai déjà un grand doute quand au code que tu a écrit:
Saches que la partie html que tu a placé après ce bloc ci dessus va etre exécutée à chaque appel de page, et non si le test est valide ou non. Peut être est ce que tu voulais faire, auquel cas, je n'ai rien dit. Sinon, il faut enlever ton ?> et faire un echo de ton code html.
Ensuite, au niveau de tes requetes, je ne vois nul part un mysql_connect, un mysql_select_db ni même de mysql_close. De plus, si tu appelle ces fonctions dans un fichier en include, saches aussi qu'il vaut mieux faire appel à la fonction mysql_query en placant en paramètre la requete, puis le lien vers mysql (lien retourné par la fonction mysql_connect).
Enfin, je vois que tu veut faire un debug au niveau mysql. Pour cela, il y a plus simple: lorsque tu fait appel à mysql_connect ou a mysql_query, tu peut le faire de cette manière.
Si il y a un problème d'exécution à l'une de ces fonctions, le reste du code php ne sera pas interprété, et tu pourra te focaliser sur l'erreur.
if (!$selection and !$valide) { ?>
Saches que la partie html que tu a placé après ce bloc ci dessus va etre exécutée à chaque appel de page, et non si le test est valide ou non. Peut être est ce que tu voulais faire, auquel cas, je n'ai rien dit. Sinon, il faut enlever ton ?> et faire un echo de ton code html.
Ensuite, au niveau de tes requetes, je ne vois nul part un mysql_connect, un mysql_select_db ni même de mysql_close. De plus, si tu appelle ces fonctions dans un fichier en include, saches aussi qu'il vaut mieux faire appel à la fonction mysql_query en placant en paramètre la requete, puis le lien vers mysql (lien retourné par la fonction mysql_connect).
Enfin, je vois que tu veut faire un debug au niveau mysql. Pour cela, il y a plus simple: lorsque tu fait appel à mysql_connect ou a mysql_query, tu peut le faire de cette manière.
$lien=mysql_connect('localhost','user','password') or die (mysql_error()); mysql_select_db('database',$lien) or die (mysql_error()); mysql_query($tarequete, $lien) or die (mysql_error()); //Le reste du code et juste avant la fin mysql_close($lien) or die(mysql_error());
Si il y a un problème d'exécution à l'une de ces fonctions, le reste du code php ne sera pas interprété, et tu pourra te focaliser sur l'erreur.
pour la connexion je l'ai mis dans un fichier configuration.php
<?php
$server = 'localhost';
$user = 'root';
$pass = '';
$table = 'papa;
mysql_connect($server,$user,$pass) or die("Impossible de se connecter au serveur");
/* ensuite se choisir la base : */
mysql_select_db($table) or die ("impossible de se connecter à la base dicteenum");
?>
<?php
$server = 'localhost';
$user = 'root';
$pass = '';
$table = 'papa;
mysql_connect($server,$user,$pass) or die("Impossible de se connecter au serveur");
/* ensuite se choisir la base : */
mysql_select_db($table) or die ("impossible de se connecter à la base dicteenum");
?>
Dans ce cas, n'oublie pas le $lien=mysql_connect...
mysql_select_db('database', $lien)...
Et enfin mysql_query($requete,$lien)
Et un conseil: tu risque de t'embrouiller, et d'embrouiller les autres en choisissant de nommer ta variable table, pour lui affecter la valeur papa etc etc....Une base de données regroupe plusieurs tables, mysql_select_db ne choisit que la base de données, pas une table. Ici dans ton exemple, tu selectionne la base de données (et non la table) nommée papa, et en message d'erreur, tu indique qu'il est impossible de se connecter à la base dicteenum. Embrouillant n'est il pas?
De plus si tu a copié collé le code de ton fichier directement ici, il y a une erreur ($table='papa';)=> tu a oublié une quote ' avant le ;
mysql_select_db('database', $lien)...
Et enfin mysql_query($requete,$lien)
Et un conseil: tu risque de t'embrouiller, et d'embrouiller les autres en choisissant de nommer ta variable table, pour lui affecter la valeur papa etc etc....Une base de données regroupe plusieurs tables, mysql_select_db ne choisit que la base de données, pas une table. Ici dans ton exemple, tu selectionne la base de données (et non la table) nommée papa, et en message d'erreur, tu indique qu'il est impossible de se connecter à la base dicteenum. Embrouillant n'est il pas?
De plus si tu a copié collé le code de ton fichier directement ici, il y a une erreur ($table='papa';)=> tu a oublié une quote ' avant le ;