Bonjour,
Je bloque sur un sujet le "name" identique.
Je m'explique j'ai créé une boucle qui récupére des items avec leur prix de la base de donnée.
Je souhaite pourvoir modifier le prix d'un item, quand j'utilise la requête sa modifie que le dernier item.
Je c'est que sa vient du name car il est identique partout.
Pour résoudre ça j'ai vu qu'il fallait rajouter des crochet "name='monNon[]'".
Mais la je bloque je vois pas comment après je renvoie en base de donner, car il renvoi array vu que [] -> c'est un tableau.
Es ce que je dois utiliser du javascript pour différencier les name ou en PHP c'est possible de le faire ?
Actuellement en PHP, je c'est modifier seulement quand il y a un name unique.
Voici mon code :
Html
<table class="tableau">
<thead>
<tr>
<th colspan="5">
<input class="form-control" id="search" type="text" placeholder="Tape quelques lettres ou chiffres pour trouver ton bonheur !!!"/>
</th>
</tr>
<tr>
<th>Numéro</th>
<th>Non item</th>
<th>Prix</th>
<th>Modifier</th>
</tr>
</thead>
<tbody>
{% for vente in ventes %}
<tr>
<td>
{{ vente.id }}
</td>{#Name et photo#}
<td>
{{ vente.name|raw }}<br>
<img src="{{ vente.photo }}" height="50px" width="50px">
</td>{#Name et photo#}
<td>
<input type="text" name="prix[]" value="{{ vente.prix }}">
</td>{#Prix#}
<td>
<button type="submit">Modifier</button>
</td>{#modifier#}
</tr>
{% endfor %}
</tbody>
</table>
Récupération base de donnée
private function creationItem($post){
$pseudos = $this->db->query("SELECT * FROM guilde")->fetchAll();
$ventes = $this->db->query("SELECT * FROM item")->fetchAll();
return['pseudos' => $pseudos, 'ventes' => $ventes];
}
Modification base de donnée
foreach ($post as $key => $item){
switch ($key){
case 'prix':
if(!isset($post['prix']) and empty($post['prix'])){
Session::getInstance()->SetFlash('erreur', "Le prix n'a pas été renseigné");
$erreur =true;
}
break;
}
}
if(!$erreur){
$tableau = array(
':prix' => $post['prix']
);
$items = $this->db->query('UPDATE item set prix=:prix WHERE id=:id ', $tableau );
if ($items) {
Session::getInstance()->setFlash('success', 'La modification a bien été effectuée');
}
else {
Session::getInstance()->setFlash('erreur', 'La modification à échoué');
}
}
Merci pour votre aide