J'ai réussis à mettre en place des checkbox avec plusieurs choix possibles, et à récupérer les id de chacun des résultats séparés par un espace à l'aide de foreach();
La ou je bloque complétement, c'est pour séparer ces valeurs et les inserer chacune dans une table intermediaire que j'ai créées.
Avez vous une idée de comment je dois proceder pour inserer les resultats retournés ?
Voici la partie du formulaire concernée :
<?php
$sql5 = 'SELECT * FROM genres';
$req5 = mysql_query($sql5) or die('Erreur SQL !
'.$sql5.'
'.mysql_error());
$sql5 = 'SELECT * FROM genres';
$req5 = mysql_query($sql5) or die('Erreur SQL !
'.$sql5.'
'.mysql_error());
=> A ne pas faire !!!
Si erreur, tu peux livrer des informations importantes sur ta base de données qui permettent très facilement de faire de l'injection par la suite.
Préfère :
$sql5 = 'SELECT * FROM genres';
$req5 mysql_query($sql5) or die([j'informe l'utilisateur qu'il y a un pb sur le site et je le redirige efficacement, et j'écris qqchose dans un fichier log, j'envoie un mail à l'admin, etc ...]);>
"mysql_close(); // on ferme la connexion"
=> ne sert à rien, la connexion est fermée automatiquement à la fin du script
Le code ci dessous n'est pas terrible et mérite d'être amélioré en fonction de ton contexte, il te propose juste quelques pistes :
<?php
require '../../connect.inc.php';
if (false $req5 mysql_query ("SELECT * FROM genres")) {
file_put_contents("erreur lors de la requête : ".mysql_error()."\r\n", 'FILE_APPEND'); // écrit l'erreur dans un fichier
// rediriger vers la page d'erreur => l'utilisateur ne s'aperçoit que d'une erreur, mais n'a pas la structure de ta table
}
if (isset($_POST['genres'])) {
// On commence par récupérer les champs => non, on met à jour la DB directement
foreach($_POST['genres'] as $id_livres => $id_genres) {
// il manque un traitement de la valeur envoyée pour sécuriser l'insertion dans la DB !!!
$genre = [traitement de la valeur de $id_genres];
if (false === mysql_query("INSERT INTO [ma table] ('ID_LIVRES', 'ID_GENRES') VALUES ('$id_livres', '$genre'")) {
//traitement de l'erreur
}