Requête insert dans une boucle
Bonjour à Tous,
J'ai un formulaire qui envoie un tableau php de données.
Code:
1 2
|
<input type="text" name="code[]"> |
Voici le traitement :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
function enreg_vente($f){
global $pdo;
$ins = "INSERT INTO `journal_ventes` (`date`, `produit_id`, `qte`, `vente_ht`, `vente_ttc`, `tot_achat_ht`, `tot_marge`, `tva55`, `tva10`, `tva20`, `paiement` )
VALUES (:date, :produit_id, :qte, :montant_ht, :montant_ttc, :tot_achat_ht, :tot_marge, :tva55, :tva10, :tva20, :paiement)";
$req = $pdo->prepare($ins);
for($i=0;$i<count($f['code']);$i++){
$code = $f['code'][$i];
$qte = $f['qte'][$i];
$paiement = $f['paiement'][$i];
$prix_vente_ttc = $f['pvttc'][$i];
$infoprod = infoprod($code); //fonction qui charge les infos d'un produit et qui plante ici
...
...
$arr['date'][] = date_sql($date);
$arr['produit_id'][] = $code;
$arr['qte'][] = $qte;
$arr['montant_ht'][] = $montant_ht;
$arr['montant_ttc'][] = $montant_ttc;
$arr['tot_achat_ht'][] = $tot_achat_ht;
$arr['tot_marge'][] = $tot_marge;
$arr['tva55'][] = $tva55;
$arr['tva10'][] = $tva10;
$arr['tva20'][] = $tva20;
$arr['paiement'][] = $paiement;
$req->execute($arr);
}
} |
La fonction infoprod qui plante :
Code:
1 2 3 4 5 6 7 8 9 10 11
|
function infoprod($prodid,$table=""){
global $pdo;
echo gettype($pdo);
if(!$table){
$table = "gamme";
}
$sql = $pdo->query("SELECT * FROM ".$table." WHERE id='".$prodid."'");
$row = $sql->fetch(PDO::FETCH_ASSOC);
return $row;
} |
Le message d'erreur dans la fonction enreg_vente
Citation:
Fatal error: Call to a member function query() on a non-object in ...
Le gettype($pdo) de la fonction infoprod me renvoie (j'ai 2 items dans le formulaire) :
Je précise que partout sur mon site, le PDO fonctionne sans problème. C'est seulement cette fonction qui déconne.
Merci de vos lumières.