Foreach ne renvoyant qu'un seul resultat

Genj -  
 genj -
Bonsoir,
je suis en train d écrire une fonction qui permettrait pour un insert ou un update de récupérer les champs et valeur d'un formulaire dynamiquement: n' ayant pas pas réussi à incorporer mon foreach directement dans la requete, j'ai créer une autre fonction pour ca; mais le foreach ne me revoie qu'un seul résultat.
Voila le code:
    
public function save($data) {   
    
  if (isset($data['id']) AND !empty($data['id'])) {   
   $pdo = PDO2::getInstance();   
   $requete = $pdo->prepare("UPDATE ".$this->table." SET " .$this->set($data)." WHERE id = ".$data['id']);   
   $requete->execute();   
   $requete->closeCursor();     
  }   
  else {   
   $pdo = PDO2::getInstance();   
   $requete = $pdo->prepare("INSERT INTO ".$this->table." SET ".$this->set($data));   
   $requete->execute();   
   $requete->closeCursor();   
  }   

 }   
public function set($data) {   
  foreach ($data as $k => $v) {   
   $kv = "$k = '$v',";   
   $kv = substr($kv, 0, -1);   
  }   
  return $kv;   
 }   


Et la page du formulaire:

 
if (!empty($_POST)) {  
 $category->save($_POST);  
 $_GET['id'] = $category->id;  
}  

<form method="post" action="index.php?"/>  
<input name="id" type="hidden" value="<?php echo $category->id; ?>" />  
<input name="titre" type="text" value="<?php echo $category->titre; ?>" />  
<textarea name="contenu"><?php echo $category->contenu; ?>

2 réponses

  1. Siluni
     
    public function set($data){  
        $return = "";  
        foreach ($data as $k => $v) {     
              $return .= "$k = '".mysql_escape_string($v)."',";     
        }  
        $return = substr($return, 0, -1);     
        return $return;     
     }    
    
    1
  2. genj
     
    Bonjour Siluni,

    je te remercie beaucoup pour ta réponse...
    Ben grace a toi il va me rester un peu de barbe (j ai arraché une partie deja)...
    Je n'avais encore pas vu cette facon de faire en declarant la variable avant le foreach.
    Encore merci ca fonctionne parfaitement :)
    Bon week end
    0