Problème de table tempon et d'insertion multiple

Résolu
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - Modifié par jordane45 le 10/06/2014 à 18:15
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 13 juin 2014 à 15:39
Bonjour,
je voudrai utiliser une table tampon afin d'enregistrer des articles vendus.
Pas de problème pour la table tampon . Mais tout se complique quand je veux insérer les données de la table tmp_article (table tampon) dans la table article. je vous donne la structure des tables tmp_article et articles:


Structure de la table 'tmp_articles'

CREATE TABLE IF NOT EXISTS 'tmp_articles' (
  'id_art' int(11) NOT NULL AUTO_INCREMENT,
  'dateArt' datetime NOT NULL,
  'articleVendu' varchar(150) NOT NULL,
  'articleRef' varchar(30) NOT NULL,
  'articleQuant' int(15) NOT NULL,
  'articlePU' float NOT NULL,
  'id' int(11) NOT NULL,
  'id_prod' int(11) NOT NULL,
  'session' varchar(150) NOT NULL,
  PRIMARY KEY ('id_art')
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=31 ;

--
-- Contenu de la table 'tmp_articles'
--

INSERT INTO 'tmp_articles' ('id_art', 'dateArt', 'articleVendu', 'articleRef', 'articleQuant', 'articlePU', 'id', 'id_prod', 'session') VALUES
(27, '2014-06-06 19:58:37', 'FLAG', '1', 10, 500, 637, 1, 'admin'),
(28, '2014-06-06 20:03:11', 'TUBORG', '10', 10, 500, 637, 2, 'admin'),
(29, '2014-06-06 20:03:28', 'TUBORG', '103', 10, 500, 637, 2, 'admin'),
(30, '2014-06-06 22:19:47', 'FLAG', '100', 10, 500, 638, 1, 'admin');
COMMIT;


et la table articles :

--
-- Structure de la table 'articles'
--

CREATE TABLE IF NOT EXISTS 'articles' (
  'id_art' int(11) NOT NULL AUTO_INCREMENT,
  'dateArt' datetime NOT NULL,
  'articleVendu' varchar(50) NOT NULL,
  'articleRef' varchar(50) NOT NULL,
  'articleQuant' varchar(50) NOT NULL,
  'articlePU' varchar(50) NOT NULL,
  'id' int(11) NOT NULL,
  'id_prod' int(11) NOT NULL,
  'session' varchar(150) NOT NULL,
  PRIMARY KEY ('id_art')
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=22 ;

--
-- Contenu de la table 'articles'
--

INSERT INTO 'articles' ('id_art', 'dateArt', 'articleVendu', 'articleRef', 'articleQuant', 'articlePU', 'id', 'id_prod', 'session') VALUES
(21, '2014-06-06 21:24:44', 'TUBORG', '103', '10', '500', 0, 0, 'admin'),
(20, '2014-06-06 21:24:44', 'TUBORG', '103', '10', '500', 0, 0, 'admin'),
(19, '2014-06-06 21:24:44', 'TUBORG', '103', '10', '500', 0, 0, 'admin');
COMMIT;



voici le code qui me permet d'afficher et et d'insérer dans la table articles
<?php
if (isset($_POST['submit'])) {
  $cat = strip_tags(trim($_POST['cat'])); 
  //compter le nombre d'enregistrement
  $session = $_SESSION[\"pseudo\"];
  $sql = (\"SELECT * FROM tmp_articles WHERE session = '\".$session.\"' order by id_art    \");
     $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  $nbre = mysql_num_rows($q);
  if($nbre != 0){
  $nbre = $rows[\"NBRE\"];
  if(isset($nbre)){
        for($i = 1; $i <= $nbre; $i++){
       //declaration de variable
   $dateArt=trim($_POST[\"dateArt\".$i]);
   $articleRef=trim($_POST[\"articleRef\".$i]);
   $articleQuant=trim($_POST[\"articleQuant\".$i]);
   $articlePU=trim($_POST[\"articlePU\".$i]);
   //RECUPERATION DE L ID PRODUIT
   $id_pd = explode(\"/\",$_POST[\"articleVendu\".$i]);
   $id_prod = $id_pd[1];
   $articleVendu = $id_pd[0];
 // on fait l'INSERT dans la base de données
     $sql = \"INSERT INTO articles(id_art,dateArt,articleVendu,articleRef,articleQuant,articlePU,id,id_prod,session)                                                                                                                                                                                    VALUES('',NOW(),'\".$articleVendu.\"','\".$articleRef.\"','\".$articleQuant.\"','\".$articlePU.\"','\".$id.\"','\".$id_prod.\"','\".$_SESSION[\"pseudo\"].\"')\";
// on insère les informations du formulaire dans la table  
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
             $msg = 'okkk'; 
             echo '<script>alert(\' '.$msg.' \');</script>' ;
//header('location:index.php?page=test_fichier_compt&id_client='.urlencode($id).'&ref='.urlencode($articleRef).'&id_art='.urlencode($id_art));
}}}}
?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" />
<title>Dynamic Drive: CSS Top and Bottom Frames Layout</title>



</head>

<body>




<form action=\"\" method=\"post\">
<table width=\"960\" border=\"0\">
  <tr>
    <td width=\"192\">ARTICLES VENDUS</td>
    <td width=\"137\"><span class=\"Style3\">REFERENCE</span></td>
    <td width=\"148\"><span class=\"Style3\">QUANTITE</span></td>
    <td width=\"141\"><span class=\"Style3\">(PRIX U)</span></td>
    <td width=\"76\"></td>
    <td width=\"80\"></td>

    </tr>
    <?php
   $session = $_SESSION[\"pseudo\"]; 
   $sql = (\"SELECT * FROM tmp_articles WHERE session = '\".$session.\"' order by id_art    \");
      $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   extract($_POST); 
   while($rows  = mysql_fetch_assoc($q)){
    $nbre_photo = $nbre; for($j = 1; $j<= $nbre_photo; $j++); 
 ?>
  <tr>
    <td><input name=\"articleVendu<?php echo $j;  ?>\" type=\"text\" style=\"width:160px;background-color:#E5E5E5;\" size=\"15\" value=\"<?php echo $rows[\"articleVendu\"];  ?>\" /></td>
    <td><input type=\"text\" style=\"width:100px;background-color:#E5E5E5; text-align:center\" name=\"articleRef<?php echo $j;  ?>\" value=\"<?php echo $rows[\"articleRef\"];  ?>\" /></td>
    <td><input type=\"text\" style=\"width:100px;background-color:#E5E5E5; text-align:center\" name=\"articleQuant<?php echo $j;  ?>\" value=\"<?php echo $rows[\"articleQuant\"];  ?>\" /></td>
    <td><input type=\"text\" style=\"width:100px;background-color:#E5E5E5; text-align:center \" name=\"articlePU<?php echo $j;  ?>\" value=\"<?php echo $rows[\"articlePU\"];  ?>\" /></td>
    <td><input type=\"text\" style=\"width:45px;background-color:#E5E5E5 ; text-align:center\" name=\"id<?php echo $j;  ?>\" value=\"<?php echo $rows[\"id\"];  ?>\" /></td>
    <td><input type=\"text\" style=\"width:45px;background-color:#E5E5E5; text-align:center \" name=\"id_prod<?php echo $j;  ?>\" value=\"<?php echo $rows[\"id_prod\"];  ?>\" /></td>
  
    </tr>
   <?php
        }//}
      ?>
  </table>

<table width=\"200\" border=\"0\" style=\"position:absolute; top:5px; left:500px; color:#400000\">

  <tr>
    <td>
<?php
$sql = \"SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '\".$session.\"'  \";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
 $leTotal = number_format($liste_etu[\"leTotal\"], 0, ',', ' '); 
echo '<center> <table width=\"561\" border=\"0\">
  <tr>
    <td width=\"238\" style=\" color:#400000\">MONTANT TOTAL A PAYER </td>
    <td bgcolor=\"#CCCCCC\" width=\"307\"><input type=\"text\" name=\"textfield\"  value = \"'.$leTotal.'\"/>F</td>
  </tr>
</table></center>';
}

?>
    </td>

  </tr>
</table>
<h3><input type=\"submit\" name=\"submit\" id=\"submit\" value=\"FACTURER\" /></h3>
</form>
</body>
</html>


au lieu de 4 lignes qui s'insère l'ai pluto une seul ligne et les autre lignes sont vides</signature>

<signature>--

17 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 10/06/2014 à 18:28
Bonjour,

1 - J'ai remis en forme ton message pour mettre les balises de code correctement ( au bon endroit et en spécifiant les langages)...

2 - Pourquoi est-ce que tu echappes tes apostrophes dans tes POST ou tes SESSIONS ?
 $session = $_SESSION[\"pseudo\"];


S'écrit tout aussi bien :
 $session = $_SESSION["pseudo"];
// ou
 $session = $_SESSION['pseudo'];



3 - Pourquoi n'utilises tu pas la syntaxe que je t'ai plusieurs fois donné :
//Ceci évite des erreurs lors de la récup des données
 $session = isset($_SESSION["pseudo"])? $_SESSION["pseudo"]:'';



4 - Pourquoi "gères" tu les ID lors de tes INSERT alors que ta BDD s'en occupe toute seule (vu que tu as des id auto incrémentés ) ??
  $sql = \"INSERT INTO articles(id_art,dateArt,articleVendu,articleRef,articleQuant,articlePU,id,id_prod,session)    VALUES('',NOW(),'\".$articleVendu.\"','\".$articleRef.\"','\".$articleQuant.\"','\".$articlePU.\"','\".$id.\"','\".$id_prod.\"','\".$_SESSION[\"pseudo\"].\"')\";


4 bis : Et pouquoi ne mets tu pas des sauts de lignes dans tes requêtes (comme je te l'ai déjà dis plein de fois...) ce qui les rendrait plus lisible....!!!
$sql = \"INSERT INTO articles(
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session)    
VALUES(NOW()
   ,'\".$articleVendu.\"'
   ,'\".$articleRef.\"'
   ,'\".$articleQuant.\"'
   ,'\".$articlePU.\"'
   ,'\".$id.\"'
   ,'\".$id_prod.\"'
   ,'\".$_SESSION[\"pseudo\"].\"'
)\";


4 c - Là aussi.... à quoi te sert d'échapper les apostrophes/quotes dans ta requête ???
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
$sql = "INSERT INTO articles
   (
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session
   )    
VALUES(
    NOW()
   ,'$articleVendu'
   ,'$articleRef'
   ,'$articleQuant'
   ,'$articlePU'
   ,'$id'
   ,'$id_prod'
   ,'$pseudo'
)";



5 - As tu mis des ECHO de tes requêtes pour voir si elles sont bonnes ?

6 - As tu testé ces requêtes directement dans ta BDD ?


Voila... corrige déjà ton code en fonction de mes quelques remarques.... testes pour voir si ça fonctionne...
Et si ça bloque toujours, repostes ton code modifié et indique nous (en fonction de mes remaques/questions) ce que tu obtiens.





Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
10 juin 2014 à 18:30
PS: merci de ne pas ouvrir de discussion en double sur le forum..!!!!
J'ai supprimé l'ancienne vu que tu l'avais créé sans être connecté.
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
11 juin 2014 à 16:48
bonsoir,
j'ai fais suivi vos conseils.

5 - As tu mis des ECHO de tes requêtes pour voir si elles sont bonnes ?


echo m'affiche : 11111
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
11 juin 2014 à 16:59
voici ce que donne la base de données apres une insertion :

0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
11 juin 2014 à 18:15
echo m'affiche : 11111

.... je ne t'ai pas demandé de faire un echo de la QUERY ... mais de la variable $SQL

// on fait l'INSERT dans la base de données
$sql = "INSERT INTO articles
   (
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session
   )    
VALUES(
    NOW()
   ,'$articleVendu'
   ,'$articleRef'
   ,'$articleQuant'
   ,'$articlePU'
   ,'$id'
   ,'$id_prod'
   ,'$pseudo'
)";

// >>>>  ECHO DE LA REQUETE <<<<<<
echo "<br><b> REQUETE : </b><br>".$sql."<br>";

// on insère les informations du formulaire dans la table  
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());



Ce n'est pas comme si je ne t'en avait pas déjà fait faire d'autre avant.... :-(


j'ai fais suivi vos conseils.
Sauf pour :
si ça bloque toujours, repostes ton code modifié et indique nous (en fonction de mes remaques/questions) ce que tu obtiens.
...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
Modifié par jordane45 le 13/06/2014 à 12:05
bonjour,
1. j'ai testé en direct la requête :
$sql = "INSERT INTO articles
   (
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session
   )    
VALUES(
    NOW()
   ,'$articleVendu'
   ,'$articleRef'
   ,'$articleQuant'
   ,'$articlePU'
   ,'$id'
   ,'$id_prod'
   ,'$pseudo'
)";

et voici le résultat :

-- Structure de la table 'articles'

CREATE TABLE IF NOT EXISTS 'articles' (
  'id_art' int(11) NOT NULL AUTO_INCREMENT,
  'dateArt' datetime NOT NULL,
  'articleVendu' varchar(50) NOT NULL,
  'articleRef' varchar(50) NOT NULL,
  'articleQuant' varchar(50) NOT NULL,
  'articlePU' varchar(50) NOT NULL,
  'id' int(11) NOT NULL,
  'id_prod' int(11) NOT NULL,
  'session' varchar(150) NOT NULL,
  PRIMARY KEY ('id_art')
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=188 ;

--
-- Contenu de la table 'articles'
--

INSERT INTO 'articles' ('id_art', 'dateArt', 'articleVendu', 'articleRef', 'articleQuant', 'articlePU', 'id', 'id_prod', 'session') VALUES
(187, '2014-06-13 09:52:49', '$articleVendu', '$articleRef', '$articleQuant', '$articlePU', 0, 0, '$pseudo');
COMMIT;


2. // >>>> ECHO DE LA REQUETE <<<<<<
echo "<br><b> REQUETE : </b><br>".$sql."<br>";

ne m'affiche rien

3. voici tout mon code :
<?php
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
if (isset($_POST["submit"])) {
  $cat = strip_tags(trim($_POST['cat'])); 
  //compter le nombre d'enregistrement

  $sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art    ");
     $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
  $nbre = mysql_num_rows($q);
  
  if($nbre !=0){
        for($i = 1; $i <= $nbre; $i++){
       //declaration de variable
   $dateArt=trim($_POST["dateArt".$i]);
   $articleRef=trim($_POST["articleRef".$i]);
   $articleQuant=trim($_POST["articleQuant".$i]);
   $articlePU=trim($_POST["articlePU".$i]);
   //RECUPERATION DE L ID PRODUIT
   $id_pd = explode("/",$_POST["articleVendu".$i]);
   $id_prod = $id_pd[1];
   $articleVendu = $id_pd[0];

// on fait l'INSERT dans la base de données

$sql = "INSERT INTO articles
   (
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session
   )    
VALUES(
    NOW()
   ,'$articleVendu'
   ,'$articleRef'
   ,'$articleQuant'
   ,'$articlePU'
   ,'$id'
   ,'$id_prod'
   ,'$pseudo'
)";
// >>>>  ECHO DE LA REQUETE <<<<<<
echo "<br><b> REQUETE : </b><br>".$sql."<br>";

// on insère les informations du formulaire dans la table  
$r  = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);
}}}
?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html xmlns="[http://www.w3.org/1999/xhtml]" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>achat</title>


</head>

<body>



<h1 style=" color:#400000">ARTICLES SAISIS</h1>


<form action="" method="post">
<table width="960" border="0">
  <tr>
    <td width="192">ARTICLES VENDUS</td>
    <td width="137"><span class="Style3">REFERENCE</span></td>
    <td width="148"><span class="Style3">QUANTITE</span></td>
    <td width="141"><span class="Style3">(PRIX U)</span></td>
    <td width="76"></td>
    <td width="80"></td>

    </tr>
    <?php
   $session = $_SESSION["pseudo"]; 
   $sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art    ");
      $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
   extract($_POST); 
   while($rows  = mysql_fetch_assoc($q)){
   for($j = 1; $j<= $nbre; $j++); 
 ?>
  <tr>
    <td><input name="articleVendu<?php echo $j;  ?>" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef<?php echo $j;  ?>" value="<?php echo $rows["articleRef"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant<?php echo $j;  ?>" value="<?php echo $rows["articleQuant"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU<?php echo $j;  ?>" value="<?php echo $rows["articlePU"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id<?php echo $j;  ?>" value="<?php echo $rows["id"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod<?php echo $j;  ?>" value="<?php echo $rows["id_prod"];  ?>" /></td>
  
    </tr>
   <?php
        }//}
      ?>
  </table>



<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

  <tr>
    <td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."'  ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
 $leTotal = number_format($liste_etu["leTotal"], 0, ',', ' '); 
echo '<center> <table width="561" border="0">
  <tr>
    <td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
    <td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield"  value = "'.$leTotal.'"/>F</td>
  </tr>
</table></center>';
}

?>
    </td>

  </tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>


0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 12:08
Quand tu fais l'écho de $sql .. tu n'obtiens rien ???


// on fait l'INSERT dans la base de données

$sql = "INSERT INTO articles
   (
   dateArt
   ,articleVendu
   ,articleRef
   ,articleQuant
   ,articlePU
   ,id
   ,id_prod,session
   )    
VALUES(
    NOW()
   ,'$articleVendu'
   ,'$articleRef'
   ,'$articleQuant'
   ,'$articlePU'
   ,'$id'
   ,'$id_prod'
   ,'$pseudo'
)";
// >>>>  ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";


Tu peux nous copier COLLER TOUT ce qui se trouve entre les deux lignes dans ta page lorsque tu exécutes le code ???

De plus... Tester en direct... signifie tester DANS la BDD directement... en remplaçant les variabes par des VALEURS !

INSERT INTO 'articles' ('id_art', 'dateArt', 'articleVendu', 'articleRef', 'articleQuant', 'articlePU', 'id', 'id_prod', 'session') VALUES
(187, '2014-06-13 09:52:49', '$articleVendu', '$articleRef', '$articleQuant', '$articlePU', 0, 0, '$pseudo');
COMMIT;

Risque en effet de ne pas marcher !!!!


0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 12:24
1. REQUETE EN DIRECT /
INSERT INTO articles
(
dateArt
,articleVendu
,articleRef
,articleQuant
,articlePU
,id
,id_prod,session
)
VALUES(
NOW()
,'FLAG'
,'1005'
,'50t'
,'250'
,'$id'
,'$id_prod'
,'MSI79'
)
DONNE BIEN :

-- Contenu de la table 'articles'
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 12:51
1. j'ai modifier mon code .
voici le code modifié :
<?php
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
if (isset($_POST["submit"])) {

?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>achat</title>


</head>

<body>



<h1 style=" color:#400000">ARTICLES SAISIS</h1>


<form action="" method="post">
<table width="960" border="0">
<tr>
<td width="192">ARTICLES VENDUS</td>
<td width="137"><span class="Style3">REFERENCE</span></td>
<td width="148"><span class="Style3">QUANTITE</span></td>
<td width="141"><span class="Style3">(PRIX U)</span></td>
<td width="76"></td>
<td width="80"></td>

</tr>
<?php
$session = $_SESSION["pseudo"];
$sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art ");
$q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
extract($_POST);
while($rows = mysql_fetch_assoc($q)){

//declaration de variable
//$dateArt=trim($_POST["dateArt".$i]);
$articleRef=trim($_POST["articleRef"]);
$articleQuant=trim($_POST["articleQuant"]);
$articlePU=trim($_POST["articlePU"]);
//RECUPERATION DE L ID PRODUIT
$id_pd = explode("/",$_POST["articleVendu"]);
$id_prod = $id_pd[1];
$articleVendu = $id_pd[0];

// on fait l'INSERT dans la base de données

$sql = "INSERT INTO articles
(
dateArt
,articleVendu
,articleRef
,articleQuant
,articlePU
,id
,id_prod,session
)
VALUES(
NOW()
,'$articleVendu'
,'$articleRef'
,'$articleQuant'
,'$articlePU'
,'$id'
,'$id_prod'
,'$pseudo'
)";
// >>>> ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";

// on insère les informations du formulaire dans la table
$r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);

?>
<tr>
<td><input name="articleVendu" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"]; ?>" /></td>

</tr>
<?php
}}
?>
</table>



<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

<tr>
<td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
$leTotal = number_format($liste_etu["leTotal"], 0, ',', ' ');
echo '<center> <table width="561" border="0">
<tr>
<td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
<td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield" value = "'.$leTotal.'"/>F</td>
</tr>
</table></center>';
}

?>
</td>

</tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>
2.
// >>>>  ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";

donne :
-----------------------------------------

REQUETE :
INSERT INTO articles ( dateArt ,articleVendu ,articleRef ,articleQuant ,articlePU ,id ,id_prod,session ) VALUES( NOW() ,'' ,'' ,'' ,'' ,'' ,'' ,'admin' )
-----------------------------------------

3.
// on insère les informations du formulaire dans la table  
$r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);

affiche 1
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 13:08
Et donc.. c'est normal que tu es du vide pour tees variables ?
INSERT INTO articles ( dateArt ,articleVendu ,articleRef ,articleQuant ,articlePU ,id ,id_prod,session ) VALUES( NOW() ,'' ,'' ,'' ,'' ,'' ,'' ,'admin' ) 



Tu peux modifier ton code (pour la récupération de tes variables) afin d'utiliser la syntaxe que je t'ai déjà proposé 10000 fois ??
Remplacer les lignes du genre :
$articleRef=trim($_POST["articleRef"]);


Par :

$articleRef=isset($_POST["articleRef"])?trim($_POST["articleRef"]):'error';



Essais aussi de placer TOUTES tes récupérations de variable POST / SESSION ... Au début de ta page.....


Bon je pense que comme ça...ça devrait être mieux :
<?php
//--------------------------------------------------------------
//RECUPERATION DES VARIABLES POST / SESSION ...
//--------------------------------------------------------------
  $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';

	//$dateArt=trim($_POST["dateArt".$i]);
	$articleRef=isset($_POST["articleRef"])?trim($_POST["articleRef"]):'error';
	$articleQuant=isset($_POST["articleQuant"])?trim($_POST["articleQuant"]):'error';
	$articlePU=isset($_POST["articlePU"])?trim($_POST["articlePU"]):'error';
	//RECUPERATION DE L ID PRODUIT
	$artVendu = isset($_POST["articleVendu"])?$_POST["articleVendu"]:'';
	 $id_pd = explode("/",$artVendu);
	 $id_prod = $id_pd[1];
	 $articleVendu = $id_pd[0];

 //--------------------------------------------------------------
 // Debut du programme :
 //--------------------------------------------------------------
 if (isset($_POST["submit"])) {
?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   <title>achat</title>
</head>

<body>

<h1 style=" color:#400000">ARTICLES SAISIS</h1>
<form action="" method="post">
<table width="960" border="0">
  <tr>
    <td width="192">ARTICLES VENDUS</td>
    <td width="137"><span class="Style3">REFERENCE</span></td>
    <td width="148"><span class="Style3">QUANTITE</span></td>
    <td width="141"><span class="Style3">(PRIX U)</span></td>
    <td width="76"></td>
    <td width="80"></td>

    </tr>
    <?php
	  $session = $_SESSION["pseudo"]; 
	  $sql = "SELECT * 
				FROM tmp_articles 
				WHERE session = '".$session."' 
				order by id_art ";
    $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	  //extract($_POST); 
	  while($rows  = mysql_fetch_assoc($q)){

		// on fait l'INSERT dans la base de données

		$sql = "INSERT INTO articles
			 (
			 dateArt
			 ,articleVendu
			 ,articleRef
			 ,articleQuant
			 ,articlePU
			 ,id
			 ,id_prod,session
			 )    
		VALUES(
				NOW()
			 ,'".$rows["articleVendu"]."'
			 ,'".$rows["articleRef"]."'
			 ,'".$rows["articleQuant"]."'
			 ,'".$rows["articlePU"]."'
			 ,'".$rows["id"]."'
			 ,'".$rows["id_prod"]."'
			 ,'$pseudo'
		)";
		// >>>>  ECHO DE LA REQUETE <<<<<<
		echo "<br>-----------------------------------------<br>";
		echo "<br><b> REQUETE : </b><br>".$sql."<br>";
		echo "-----------------------------------------<br>";

		// on insère les informations du formulaire dans la table  
		$r  = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
		

	?>
  <tr>
    <td><input name="articleVendu" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"];  ?>" /></td>
  
    </tr>
	  <?php
        } // Fin de la boucle While
	}// Fin du IF
      ?>
  </table>



<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

  <tr>
    <td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."'  ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
	$leTotal = number_format($liste_etu["leTotal"], 0, ',', ' ');	
echo '<center> <table width="561" border="0">
  <tr>
    <td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
    <td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield"  value = "'.$leTotal.'"/>F</td>
  </tr>
</table></center>';
}

?>
    </td>

  </tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>



0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 13:10
je crois que le nouveau code n'est pas le bon . je retourne a l'ancien et continuer a demander votre aide
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 13:12
Tu as testé le mien ?

Enfin.. si tu retournes à l'ancien... tiens compte quand même de mes remarques.
Modifie aussi la requête comme ceci :

$sql = "INSERT INTO articles
			 (
			 dateArt
			 ,articleVendu
			 ,articleRef
			 ,articleQuant
			 ,articlePU
			 ,id
			 ,id_prod,session
			 )    
		VALUES(
				NOW()
			 ,'".$rows["articleVendu"]."'
			 ,'".$rows["articleRef"]."'
			 ,'".$rows["articleQuant"]."'
			 ,'".$rows["articlePU"]."'
			 ,'".$rows["id"]."'
			 ,'".$rows["id_prod"]."'
			 ,'$pseudo'
		)";
		// >>>>  ECHO DE LA REQUETE <<<<<<
		echo "<br>-----------------------------------------<br>";
		echo "<br><b> REQUETE : </b><br>".$sql."<br>";
		echo "-----------------------------------------<br>";
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 13:27
la je suis complétement perdu . je remarque que le code que vous veniez de me proposé ne peux que être utilisé dans mon nouveau code mais la encore ça ne marche pas .
en plus les articles saisis dans tmp_articles ne s'affichent plus. et pas d'insertion

voici le nouveau code :
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>achat</title>
</head>
<body>
<h1 style=" color:#400000">ARTICLES SAISIS</h1>
<form action="" method="post">
<table width="960" border="0">
<tr>
<td width="192">ARTICLES VENDUS</td>
<td width="137"><span class="Style3">REFERENCE</span></td>
<td width="148"><span class="Style3">QUANTITE</span></td>
<td width="141"><span class="Style3">(PRIX U)</span></td>
<td width="76"></td>
<td width="80"></td>
</tr>
<?php
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';

$sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art ");
$q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while($rows = mysql_fetch_assoc($q)){

if (isset($_POST["submit"])) {


$sql = "INSERT INTO articles
(
dateArt
,articleVendu
,articleRef
,articleQuant
,articlePU
,id
,id_prod,session
)
VALUES(
NOW()
,'".$rows["articleVendu"]."'
,'".$rows["articleRef"]."'
,'".$rows["articleQuant"]."'
,'".$rows["articlePU"]."'
,'".$rows["id"]."'
,'".$rows["id_prod"]."'
,'$pseudo'
)";
// >>>> ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";

//on insère les informations du formulaire dans la table
$r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);

?>
<tr>
<td><input name="articleVendu" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"]; ?>" /></td>

</tr>
<?php
}}
?>
</table>
<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">
<tr>
<td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
$leTotal = number_format($liste_etu["leTotal"], 0, ',', ' ');
echo '<center> <table width="561" border="0">
<tr>
<td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
<td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield" value = "'.$leTotal.'"/>F</td>
</tr>
</table></center>';
}

?>
</td>
</tr>
</table>
</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>
</div>
</div>
</form>
</body>
</html>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 13:53
Ou se trouve la récupération des variables POST / SESSION dans ce nouveau code ?????

<?php
//--------------------------------------------------------------
//RECUPERATION DES VARIABLES POST / SESSION ...
//--------------------------------------------------------------
  $pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';

	//$dateArt=trim($_POST["dateArt".$i]);
	$articleRef=isset($_POST["articleRef"])?trim($_POST["articleRef"]):'error';
	$articleQuant=isset($_POST["articleQuant"])?trim($_POST["articleQuant"]):'error';
	$articlePU=isset($_POST["articlePU"])?trim($_POST["articlePU"]):'error';
	//RECUPERATION DE L ID PRODUIT
	$artVendu = isset($_POST["articleVendu"])?$_POST["articleVendu"]:'';
	 $id_pd = explode("/",$artVendu);
	 $id_prod = $id_pd[1];
	 $articleVendu = $id_pd[0];
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 14:00
la solution que tu m'as donné ne fonctionne pas . mais voici ce que je viens de tenter qui fonctionne mais le problème est que c'est seulement une seule ligne qui s'insère.
voici le code :
<?php
if (isset($_POST["submit"])) {
$cat = strip_tags(trim($_POST['cat']));
//compter le nombre d'enregistrement
$session = isset($_SESSION["pseudo"])? $_SESSION["pseudo"]:'';
$sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art ");
$sql = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbre = mysql_num_rows($sql);

if($nbre !=0){
while($row = mysql_fetch_assoc($sql)){

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
$sql = "INSERT INTO articles
(
dateArt
,articleVendu
,articleRef
,articleQuant
,articlePU
,id
,id_prod,session
)
VALUES(
NOW()
,'".$row["articleVendu"]."'
,'".$row["articleRef"]."'
,'".$row["articleQuant"]."'
,'".$row["articlePU"]."'
,'".$row["id"]."'
,'".$row["id_prod"]."'
,'$pseudo'
)";
// >>>> ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";

// on insère les informations du formulaire dans la table
$r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);

}}}
?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dynamic Drive: CSS Top and Bottom Frames Layout</title>


</head>

<body>

<div id="framecontentTop">
<div class="innertube">

<h1 style=" color:#400000">ARTICLES SAISIS</h1>
<h3></h3>

</div>
</div>




<div id="maincontent">
<div class="innertube">


<form action="" method="post">
<table width="960" border="0">
<tr>
<td width="192">ARTICLES VENDUS</td>
<td width="137"><span class="Style3">REFERENCE</span></td>
<td width="148"><span class="Style3">QUANTITE</span></td>
<td width="141"><span class="Style3">(PRIX U)</span></td>
<td width="76"></td>
<td width="80"></td>

</tr>
<?php
$session = $_SESSION["pseudo"];
$sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art ");
$q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while($rows = mysql_fetch_assoc($q)){

?>
<tr>
<td><input name="articleVendu<?php echo $j; ?>" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"]; ?>" /></td>

</tr>
<?php
}//}
?>
</table>



</div>
</div>




<div id="framecontentBottom">
<div class="innertube">
<div>
</br>
<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

<tr>
<td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
$leTotal = number_format($liste_etu["leTotal"], 0, ',', ' ');
echo '<center> <table width="561" border="0">
<tr>
<td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
<td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield" value = "'.$leTotal.'"/>F</td>
</tr>
</table></center>';
}

?>
</td>

</tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 14:09
il n'y a qu'une seule ligne car ...
 $sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art    ");

Tu ne récupère QUE pour UN NUMERO de SESSION donné ... non ????


PS : Je ne participerai plus à tes discussions si tu ne tiens pas compte de mes remarques au niveau de la présentation/mise en page de tes codes ..!!!

Il est clairement plus facile ( et c'est plus Propre..plus pros ) de structurer tes pages de la façon suivante :

<?php
session_start();

//---------------------------------------------------------------
// RECUPERATION DES VARIABLES 
//---------------------------------------------------------------
// ici... Toutes les récup des variables de type POST / SESSION ...etc..

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
$articleRef=isset($_POST["articleRef"])?trim($_POST["articleRef"]):'error';
$articleQuant=isset($_POST["articleQuant"])?trim($_POST["articleQuant"]):'error';
$articlePU=isset($_POST["articlePU"])?trim($_POST["articlePU"]):'error';
//RECUPERATION DE L ID PRODUIT
$artVendu = isset($_POST["articleVendu"])?$_POST["articleVendu"]:'';
 $id_pd = explode("/",$artVendu);
 $id_prod = $id_pd[1];
 $articleVendu = $id_pd[0];


//---------------------------------------------------------------
// Ensuite : Tous les traitements 
// a faire  si ton/tes formulaires ont été "validés"
//---------------------------------------------------------------

if (isset($_POST["submit"])){
 

    // les actions à faire si ton formulaire a été envoyé...
   // Comme l'insert par exemple


}


//---------------------------------------------------------------
// Et enfin ..le reste de ton code
// en général : l'affichage de la page...
//---------------------------------------------------------------





0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 14:38
excuse moi pour la présentation de mon code .
je vais m améliorer.

je comprend pas pourquoi cette phrase : Tu ne récupère QUE pour UN NUMERO de SESSION donné ... non ????
est ce que cette requête devrai me renvoyer une seule ligne ?
 $sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art    ");

puisque je veux récupérer tous les enregistrement de la table tmp_articles de la session
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 14:40
Ah ben si surement...
As tu regardé combien de lignes te retourne cette requête ?

Si tu la teste en direct dans ta BDD .. qu'obtients tu ?
Plusieurs résultats ou pas ?
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 13/06/2014 à 14:44
Que te donnes les lignes de code suivantes :

 $sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art    ");
 $sql = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 $nbre = mysql_num_rows($sql);
 echo "<br> Nombre de lignes : ".$nbre."<br>";  
   if($nbre !=0){
   $r=0;
    while($row  = mysql_fetch_assoc($sql)){
   $r++;
   echo ">> Row => ".$r."<br>";
   print_r($row);
   echo "<br>*************************<br>"; 


// Le reste de ton code



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 14:45
voici la requête que je viens de faire en direct et ça me donne toutes les lignes :
SELECT *
FROM tmp_articles
WHERE SESSION = 'admin'
ORDER BY id_art
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 14:53
Et tu as ajouté les lignes de code que je t'ai donné juste avant ? http://codes-sources.commentcamarche.net/forum/affich-10030052-probleme-de-table-tempon-et-d-insertion-multiple#19

Qu'obtiens tu à l'affichage de ta page ?

Peux tu nous reposter le code complet modifié ?
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 15:04
1.
   echo ">> Row => ".$r."<br>";
print_r($row);
echo "<br>*************************<br>";
donne :

Nombre de lignes : 5
>> Row => 1
Array ( [id_art] => 27 [dateArt] => 2014-06-06 19:58:37 [articleVendu] => FLAG [articleRef] => 1 [articleQuant] => 10 [articlePU] => 500 [id] => 637 [id_prod] => 1 [session] => admin )
*************************

voici mon code complet :
<?php
if (isset($_POST["submit"])) {

//RECUPERATION DES DONNES DANS TMP_ARTICLE
$session = isset($_SESSION["pseudo"])? $_SESSION["pseudo"]:'';
$sql = ("SELECT * FROM tmp_articles WHERE session = '".$session."' order by id_art ");
$sql = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$nbre = mysql_num_rows($sql);
echo "<br> Nombre de lignes : ".$nbre."<br>";
if($nbre !=0){
$r=0;
while($row = mysql_fetch_assoc($sql)){
$r++;
echo ">> Row => ".$r."<br>";
print_r($row);
echo "<br>*************************<br>";


// Le reste de ton code
//INSERTION DES VALEURS DANS LA TABLE ARTICLES
$sql = "INSERT INTO articles
(
dateArt
,articleVendu
,articleRef
,articleQuant
,articlePU
,id
,id_prod,session
)
VALUES(
NOW()
,'".$row["articleVendu"]."'
,'".$row["articleRef"]."'
,'".$row["articleQuant"]."'
,'".$row["articlePU"]."'
,'".$row["id"]."'
,'".$row["id_prod"]."'
,'$pseudo'
)";
// >>>> ECHO DE LA REQUETE <<<<<<
echo "<br>-----------------------------------------<br>";
echo "<br><b> REQUETE : </b><br>".$sql."<br>";
echo "-----------------------------------------<br>";

// EXECUTION DE LA REQUETE
$r = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
print_r($r);

}}}
?>
<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dynamic Drive: CSS Top and Bottom Frames Layout</title>


</head>

<body>

<div id="framecontentTop">
<div class="innertube">

<h1 style=" color:#400000">ARTICLES SAISIS</h1>
<h3></h3>

</div>
</div>




<div id="maincontent">
<div class="innertube">


<form action="" method="post">
<table width="960" border="0">
<tr>
<td width="192">ARTICLES VENDUS</td>
<td width="137"><span class="Style3">REFERENCE</span></td>
<td width="148"><span class="Style3">QUANTITE</span></td>
<td width="141"><span class="Style3">(PRIX U)</span></td>
<td width="76"></td>
<td width="80"></td>

</tr>
<?php
$session = $_SESSION["pseudo"];
$sql = ("SELECT *
FROM tmp_articles
WHERE session = '".$session."'
order by id_art ");
$q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

while($rows = mysql_fetch_assoc($q)){

?>
<tr>
<td><input name="articleVendu<?php echo $j; ?>" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"]; ?>" /></td>
<td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"]; ?>" /></td>
<td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"]; ?>" /></td>

</tr>
<?php
}//}
?>
</table>



</div>
</div>




<div id="framecontentBottom">
<div class="innertube">
<div>
</br>
<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

<tr>
<td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal FROM tmp_articles WHERE session = '".$session."' ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
$leTotal = number_format($liste_etu["leTotal"], 0, ',', ' ');
echo '<center> <table width="561" border="0">
<tr>
<td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
<td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield" value = "'.$leTotal.'"/>F</td>
</tr>
</table></center>';
}

?>
</td>

</tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 15:10
Tu n'as rien d'autre qui s'affiche sur ta page ???

par exemple les lignes :
		// >>>>  ECHO DE LA REQUETE <<<<<<
		echo "<br>-----------------------------------------<br>";
		echo "<br><b> REQUETE : </b><br>".$sql."<br>";
		echo "-----------------------------------------<br>";
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
Modifié par jordane45 le 13/06/2014 à 15:21
Peux tu tester CE code :


<?php
session_start();

//---------------------------------------------------------------
// RECUPERATION DES VARIABLES 
//---------------------------------------------------------------
// ici... Toutes les récup des variables de type POST / SESSION ...etc..
$session = isset($_SESSION["pseudo"])? $_SESSION["pseudo"]:'';
$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
$articleRef=isset($_POST["articleRef"])?trim($_POST["articleRef"]):'error';
$articleQuant=isset($_POST["articleQuant"])?trim($_POST["articleQuant"]):'error';
$articlePU=isset($_POST["articlePU"])?trim($_POST["articlePU"]):'error';
//RECUPERATION DE L ID PRODUIT
$artVendu = isset($_POST["articleVendu"])?$_POST["articleVendu"]:'';
 $id_pd = explode("/",$artVendu);
 $id_prod = $id_pd[1];
 $articleVendu = $id_pd[0];

if (isset($_POST["submit"])) {
 
 //RECUPERATION DES DONNES DANS TMP_ARTICLE

 $sql = "SELECT * FROM tmp_articles 
         WHERE session = '".$session."' 
     order by id_art";
 $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
 
 $nbre = mysql_num_rows($req);
 echo "<br> Nombre de lignes : ".$nbre."<br>";  
   if($nbre !=0){
     $r=0;
     while($row  = mysql_fetch_assoc($req)){
   $r++;
   echo ">> Row => ".$r."<br>";
   print_r($row);
   echo "<br>*************************<br>"; 
   //INSERTION DES VALEURS DANS LA TABLE ARTICLES
  $sql2 = "INSERT INTO articles
      (
      dateArt
      ,articleVendu
      ,articleRef
      ,articleQuant
      ,articlePU
      ,id
      ,id_prod,session
      )    
    VALUES(
      NOW()
      ,'".$row["articleVendu"]."'
      ,'".$row["articleRef"]."'
      ,'".$row["articleQuant"]."'
      ,'".$row["articlePU"]."'
      ,'".$row["id"]."'
      ,'".$row["id_prod"]."'
      ,'$pseudo'
    )";
  // >>>>  ECHO DE LA REQUETE <<<<<<
  echo "<br>-----------------------------------------<br>";
  echo "<br><b> REQUETE : </b><br>".$sql."<br>";
  echo "-----------------------------------------<br>";

  // EXECUTION DE LA REQUETE 
  $r = mysql_query($sql2);
    if($r){
    echo "<br><h2> Insertion OK</h2><br>";
   }else{
     echo "<br><h2> Insertion KO</h2><br>";
    echo "<br><b> => Requête : </b><br>".$sql2."<br>";
    echo " Error : ".mysql_error()."<br>";
   }
   
  }// fin du While
 } // Fin du IF($nbre !=0)
} //Fin du ID(isset($_POST["submit"]))
?>

<!--Force IE6 into quirks mode with this comment tag-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Dynamic Drive: CSS Top and Bottom Frames Layout</title>
</head>
<body>
 <div id="framecontentTop">
  <div class="innertube">
   <h1 style=" color:#400000">ARTICLES SAISIS</h1>
   <h3></h3>
  </div>
 </div>
 <div id="maincontent">
  <div class="innertube">
  <form action="" method="post">
   <table width="960" border="0">
   <tr>
    <td width="192">ARTICLES VENDUS</td>
    <td width="137"><span class="Style3">REFERENCE</span></td>
    <td width="148"><span class="Style3">QUANTITE</span></td>
    <td width="141"><span class="Style3">(PRIX U)</span></td>
    <td width="76"></td>
    <td width="80"></td>

    </tr>
    <?php
    $session = $_SESSION["pseudo"]; 
    $sql = "SELECT *
        FROM tmp_articles
        WHERE session = '".$session."' 
      order by id_art ";
     $q = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    
    while($rows  = mysql_fetch_assoc($q)){
     
   ?>
   <tr>
    <td><input name="articleVendu<?php echo $j;  ?>" type="text" style="width:160px;background-color:#E5E5E5;" size="15" value="<?php echo $rows["articleVendu"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleRef" value="<?php echo $rows["articleRef"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center" name="articleQuant" value="<?php echo $rows["articleQuant"];  ?>" /></td>
    <td><input type="text" style="width:100px;background-color:#E5E5E5; text-align:center " name="articlePU" value="<?php echo $rows["articlePU"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5 ; text-align:center" name="id" value="<?php echo $rows["id"];  ?>" /></td>
    <td><input type="text" style="width:45px;background-color:#E5E5E5; text-align:center " name="id_prod" value="<?php echo $rows["id_prod"];  ?>" /></td>
   
   </tr>
  <?php
  }//}
  ?>
   </table>
  </div>
 </div>




<div id="framecontentBottom">
<div class="innertube">
<div>
</br>
<table width="200" border="0" style="position:absolute; top:5px; left:500px; color:#400000">

  <tr>
    <td>
<?php
$sql = "SELECT SUM(articleQuant * articlePU) AS leTotal 
     FROM tmp_articles 
     WHERE session = '".$session."'  ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
while ($liste_etu=mysql_fetch_assoc($req)) {
 $leTotal = number_format($liste_etu["leTotal"], 0, ',', ' '); 
echo '<center> <table width="561" border="0">
  <tr>
    <td width="238" style=" color:#400000">MONTANT TOTAL A PAYER </td>
    <td bgcolor="#CCCCCC" width="307"><input type="text" name="textfield"  value = "'.$leTotal.'"/>F</td>
  </tr>
</table></center>';
}

?>
    </td>

  </tr>
</table>

</div>
</br></br>
<h3><input type="submit" name="submit" id="submit" value="FACTURER" /></h3>

</div>
</div>
</form>
</body>
</html>



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
13 juin 2014 à 15:36
oui ça marche . vraiment qu'allais-je devenir sans toi . merci une fois de plus
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 15:37
qu'allais-je devenir sans toi
Un mec courageux qui aurait fini par trouver ^^
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
13 juin 2014 à 15:39
Bonjour,
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
Rejoignez-nous