Conversion de tableau en chaîne
Bonjour à tous j'ai un problème avec l'insertion de plusieurs row(input de même nom )dans la base de données. Une fois le code exécuté je reçois le massage d'erreur suivant:
Citation:
conversion de tableau en chaîne dans C:\wamp64\www\orders\app\Models\Model.php à la ligne 83
Mon Modele
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
| <?php
namespace App\Models;
use Database\DBConnection;
use PDO;
abstract class Model{
protected $db;
protected $table;
public function __construct(DBConnection $db){
$this->db = $db;
}
public function create(array $data, ?array $relations = null){
$firstParenthesis = "";
$secondParenthesis = "";
$i = 1;
foreach($data as $key => $value){
$comma = $i === count($data) ? "" : ", ";
$firstParenthesis .= "{$key}{$comma}";
$secondParenthesis .= ":{$key}{$comma}";
$i++;
}
return $this->query("INSERT INTO {$this->table} ($firstParenthesis) VALUES ($secondParenthesis)",$data);
} |
Mon Controller
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?php
namespace App\Controllers;
use App\Models\Da;
use App\Models\Fournisseur;
use App\Models\User;
class DaController extends Controller{
public function CreateDaPost(){
$da = new Da($this->getDB());
$result=$da->create($_POST);
var_dump($result); die();
if($result){
return header('Location:/templates/showAllDA.php');
}else{
return header('Location:/templates/DaForm');
}
} |
Mon formulaire
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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
| <body>
<div class="row">
<div class="container">
<div class="card-header"><h3 class="text-center font-weight-light my-4"><?= $params['devis']->designation ?? 'Nouvelle demande achat' ?></h3></div>
<div class="card-body">
<form method="POST" action="<?= isset($params['devis']) ? "/templates/edit_Da/{$params['devis']->id}" : "/templates/DaForm"?>">
<div class="row" >
<div class="col-md-4" class="ingredient-form">
<label>Service demandeur</label>
<input type="text" name="service[]" class="form-control" value="<?= $params['devis']->service ?? '' ?>">
</div>
<div class="col-md-4" class="ingredient-form">
<label>N°Devis</label>
<input type="text" name="num[]" class="form-control" value="<?= $params['devis']->num ?? '' ?>">
</div>
<div class="col-md-4" class="ingredient-form">
<label>Fournisseur</label>
<select type="text" name="fournisseur[]" class="form-control">
<?php foreach($params['four'] as $four): ?>
<option></option>
<option value="<?= $four->id; ?>"><?= $four->raison_soc;?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="row" >
<div class="col-md-4" class="ingredient-form">
<label>Demandeur</label>
<input type="text" name="user[]" class="form-control" value="">
</div>
<div class="col-md-4" class="ingredient-form">
<label>Moyen de transport</label>
<select type="text" name="mode[]" class="form-control">
<option></option>
<option value="Terrestre">Terrestre</option>
<option value="Avion">Avion</option>
<option value="Bateau">Bateau</option>
</select>
</div>
<div class="col-md-4" class="ingredient-form">
<label>Priorité</label>
<select type="text" name="priorite[]" class="form-control">
<option></option>
<option value="Normale">Normale</option>
<option value="Urgente">Urgente</option>
<option value="Très urgente">Très urgente</option>
</select>
</div>
</div>
<hr/>
<input id='add-more' class="col-lg-2 mt-2" type="submit" value="+ Ligne demande achat">
<input type="submit" class="btn-primary" value="<?= isset($params['devis'])?'Enregistrer les mises à jour' : "Envoyer l'approbation"; ?>" > <hr/>
<div class="row " id="ingredient-form-list">
<div class="col-md-3" class="ingredient-form">
<label>Code</label>
<input type="text" name="code[]" class="form-control" value="<?= $params['devis']->code ?? ''; ?>">
</div>
<div class="col-md-3" class="ingredient-form">
<label>Désignation</label>
<input type="text" name="designation[]" class="form-control" value="<?= $params['devis']->designation ?? ''; ?>">
</div>
<div class="col-md-3" class="ingredient-form">
<label>Qté</label>
<input type="text" name="qte[]" class="form-control" value="<?= $params['devis']->qte ?? ''; ?>">
</div>
<div class="col-md-3" class="ingredient-form">
<label>PU</label>
<input type="text" name="pu[]" class="form-control" value="<?= $params['devis']->pu ?? ''; ?>">
</div>
</div>
<div class="row hidden" id="empty-form">
<div class="row">
<div class="col-md-3">
<label></label>
<input type="text" name="code[]" class="form-control">
</div>
<div class="col-md-3">
<label></label>
<input type="text" name="designation[]" class="form-control">
</div>
<div class="col-md-2">
<label></label>
<input type="text" name="qte[]" class="form-control">
</div>
<div class="col-md-3">
<label></label>
<input type="text" name="pu[]" class="form-control">
</div>
<div class="col-md-1">
<label></label>
<button type="submit" class="btn btn-danger">Retiré</button>
</div>
</div>
</div>
</form>
</div>
</div>
<script>
const addMoreBtn = document.getElementById('add-more')
addMoreBtn.addEventListener('click',add_new_form)
function add_new_form(event) {
if (event) {
event.preventDefault()
}
const formCopyTarget = document.getElementById('ingredient-form-list')
const emptyFormEl = document.getElementById('empty-form').cloneNode(true)
emptyFormEl.setAttribute('class', 'ingredient-form')
formCopyTarget.append(emptyFormEl)
}
</script>
</body> |