array et sauvegarde mysql.

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : array et sauvegarde mysql.

Re: array et sauvegarde mysql.

par xTG » 09 mai 2012, 11:51

As-tu fait des affichages pour voir ce qu'était $cle et $valeur ?

Re: array et sauvegarde mysql.

par piotrowski-s » 09 mai 2012, 09:01

j'ai essayé en faisant cela:
<?php
//var_dump($_POST['data']) ;
$value = $_POST['data'] ; 

foreach($value as $cle => $valeur)
{   

$sql = 'INSERT INTO agenda SET
code_s = "'.mysql_real_escape_string($_POST['data[][code_s]']).'",
date = "'.mysql_real_escape_string($_POST['data[][date]']).'", 
libelle = "'.mysql_real_escape_string($_POST['data[][libelle]']).'",
action = "'.mysql_real_escape_string($_POST['data[][libelle]']).'"';

}
?>
en dépit de tout, il me met toujours des variables indéfinies.
du coup je restes bloqué.

Re: array et sauvegarde mysql.

par piotrowski-s » 09 mai 2012, 08:01

a quoi correspondent les variables cle et valeurs?

Re: array et sauvegarde mysql.

par xTG » 05 mai 2012, 08:19

$monTableau = array(...);
foreach($monTableau as $cle => $valeur)

Re: array et sauvegarde mysql.

par piotrowski-s » 04 mai 2012, 16:29

j'ai donc fais un changement,
<?php
$values = array();
foreach( $data AS $_POST['data'] ) {
    $values[] = '('.implode(',', $data).')';
}
$sql = "INSERT INTO agenda (code_s, date, libelle, action) VALUES ".implode(',', $values);
?>
le nombre d'erreurs est radicalement réduit, néanmoins certaines demeurent et je ne sais comment les corriger, les voici:



( ! ) Notice: Undefined variable: data in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\go.php on line 184
Call Stack
# Time Memory Function Location
1 0.0004 711312 {main}( ) ..\go.php:0

( ! ) Warning: Invalid argument supplied for foreach() in C:\wamp\www\NEOGETCASH\GESTIONNAIRE\go.php on line 184
Call Stack
# Time Memory Function Location
1 0.0004 711312 {main}( ) ..\go.php:0

Re: array et sauvegarde mysql.

par piotrowski-s » 04 mai 2012, 14:33

j'ai essayé de procéder de la sorte, mais en vain,
<?php
$values = array();
foreach( $data AS $_POST['data'] ) {
    $values[] = '('.implode(',', $data).')';
}
$sql = "INSERT INTO agenda (code_s, date, libelle, action) VALUES ".implode(',', $values['code_s'], $values['libelle'], $values['action'], $values['date']);
?>

Re: array et sauvegarde mysql.

par piotrowski-s » 04 mai 2012, 11:07

il me dit :

que es undefine...

Re: array et sauvegarde mysql.

par piotrowski-s » 04 mai 2012, 09:50

en fait j'ai essayé en reprenant le code de faire cela:
<?PHP
$code_s  =  $_POST['code_s']($i];
$titre     = $_POST['titre']($i];
$action  = $_POST['action']($i];
$libelle  = $_POST['libelle']($i];
$date    = $_POST['date']($i];

while (isset($code_s)) { 

INSERT INTO ...
}

?>
mais ça plante...

Re: array et sauvegarde mysql.

par xTG » 04 mai 2012, 09:41

Il me semble pourtant que Mazarini t'a montré comment faire. :mrgreen:

Re: array et sauvegarde mysql.

par piotrowski-s » 04 mai 2012, 09:31

au vue de vos conseils j'ai donc remanié le code, voici ce que j'ai:
<?php
 
$sql = "SELECT * FROM scenarii where code_s='".mysql_real_escape_string($_POST['code_s'])."'";
$qry = mysql_query($sql) or die(__LINE__.mysql_error().$sql);
 
$get_date = function($data_jours) {
   $today = new DateTime();
   $today->setTime(0, 0);
   $jours = (isset($_POST['jours']) && ctype_digit($_POST['jours'])) ? $_POST['jours'] : 0;
   if (isset($_POST['submit']) && ($_POST['submit'] === 'moins')) {
      $jours = -$jours;
   }
   $nb       = $data_jours + $jours;
   $func     = ($nb < 0) ? 'sub' : 'add';
   $interval = new DateInterval("P{$nb}D");
   return $today->$func($interval)->format('d-m-Y');
};
$i = -1; // index des enregistrements
?>
<table cellpadding="5" cellspacing="5">
   <tr>
      <td><strong>CODE SCENARIO</strong></td>
      <td><strong>LIBELLE</strong></td>
      <td><strong>ACTION</strong></td>
      <td><strong>DESCRIPTION</strong></td>
      <td><strong>DATE</strong></td>
   </tr>
   <form action="<?php echo (isset($_POST['go'])) ? 'go.php' : '#'; ?>" method="post">
      <input type="hidden" name="liasse" value="<?php echo $_POST['liasse']; ?>"/>
      <?php while($row = mysql_fetch_assoc($qry)): ?>
      <tr>
         <td><input name="data[<?php echo ++$i; ?>][code_s]" type="text" value="<?php echo $row['code_s'];?>" size="10"></td>
         <td><input name="data[<?php echo $i; ?>][titre]" type="text" value="<?php echo $row['titre']; ?>" size="45"></td>
         <td><input name="data[<?php echo $i; ?>][action]" type="text" value="<?php echo $row['action']; ?>" size="15"></td>
         <td><input name="data[<?php echo $i; ?>][libelle]" type="text" value="<?php echo $row['libelle']; ?>" size="55"></td>
         <td><input type="text" name="data[<?php echo $i; ?>][date]" value="<?php echo $get_date($row['jour']); ?>" size="12"></td>
      </tr>
      <?php endwhile; ?>
      <p>
         <strong>Décalage des date </strong>
         <table width="150" border="0" cellspacing="0" cellpadding="0">
            <tr>
               <td align="center" bgcolor="#FFFF99"><input type="hidden" name="code_s" value="<?php echo $_POST['code_s']; ?>">
                  <input type="image" src="images/minus_remove_green.png" width="22" height="22" name="submit"  value="moins" />
                  <input name="jours" type="text" value="" size="5" />
                  <input type="image" src="images/plus_add_green.png" width="22" height="22" name="submit" value="plus" />
               </td>
            </tr>
         </table>
      </p>
      <p align="right"><input type="submit" name="go" value="go" width="28" height="28"></p>
   </form>
</table>
Le soucis maintenant c'est que je ne sais pas comment stocker un array dans mysql, mais uniquement une variable. donc je ne sais pas comment faire la requête, je sais que je dois faire un while, mais bon je suis bloqué pour le reste, car je ne sais pas comment faire avec les noms des champs et les variables $_POST...

si quelqu'un avait ne serais-ce qu'un exemple pour la sauvegarde d'un array dans mysql ca m'aiderait bien.

Par avance merci.

Re: array et sauvegarde mysql.

par xTG » 03 mai 2012, 21:32

Ce qui est magique en PHP et comme dans tout langage c'est que si la structure ne te plait pas tu la changes. ;)
Voir mon intervention ou bien celle de Mazarini.

Re: array et sauvegarde mysql.

par piotrowski-s » 03 mai 2012, 16:59

oui je sais mais la structure est mauvaise, car j'ai essayé de faire unerequete while et insert mais ça n'a pas fonctionné.

Re: array et sauvegarde mysql.

par xTG » 03 mai 2012, 16:51

var_dump() et pas echo...

Re: array et sauvegarde mysql.

par piotrowski-s » 03 mai 2012, 16:46

j'ai essayé comme ça en modifiant légèrement la vari&able mais je n'ai toujours rien...
<?php //var_dump($_POST['tableau'])  ;
while (isset($_POST['$tableau'])) { echo $_POST['$tableau'] ; } ?>

Re: array et sauvegarde mysql.

par piotrowski-s » 03 mai 2012, 15:45

<?php //var_dump($_POST['tableau'])  ;
while (isset($_POST['tableau'])) { echo $_POST['tableau'] ; } ?>
j'ai donc essayé de faire cela mais ça bug... en fait je souhaites voir comment cela va s'afficher avant de faire l'insertion MYSQL...