Formulaire dans une boucle while()
Je cherche à solutionner le problème suivant:
1. je souhaite sélectionner par mysqli certains enregistrements de ma BDD, puis pour chacun de ces enregistrements afficher un champ image et demander si on valide ou non cette image, traiter la réponse (ex: mettre à 1 le champ de validation de cette image), puis traiter l'enregistrement sélectionné suivant. Etc... jusqu'au dernier enregistrement sélectionné,
2. le script que j'ai écrit (voir ci-dessous) fonctionne mal: la sélection des enregistrements est bonne, le 1er enregistrement est bien affiché avec son image ainsi que son formulaire (sa question, et sa demande de validation). Mais il ne s'arrête pas pour laisser l'utilisateur traiter ou non cet enregistrement. Toute la séquence des enregistrements à traiter défile ainsi (affichage image, affichage formulaire) jusqu'à la fin de mon script: et l'utilisateur n'a pas pu répondre aux questions !
J'ai tenté d'insérer une boucle supplémentaire de type while(true) pour y insérer le traitement du test de validation du formulaire, mais cela me crée une erreur système.
Voici la partie problématique de mon script:
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
|
<?php
echo "<span style='color: blue;'>Validation des Cartes d'Identité publiées ...</span>";
echo '<p></p>';
$rab = "LOCK TABLES syw7g_comprofiler WRITE";
$ras = $conn->query($rab) or die('Erreur SQL !<br>'.$rab.'<br>'.mysqli_error());
$rab = "SELECT id, cb_ci, cb_ci_verif FROM syw7g_comprofiler WHERE ((cb_ci IS NOT NULL) AND (cb_ci_verif = 0))";
$maj = $conn->query($rab) or die('Erreur SQL !<br>'.$rab.'<br>'.mysqli_error());
$nb = $maj->num_rows;
if ($nb > 0) {
echo "On trouve $nb profils à mettre à jour <br />";
while($arr = mysqli_fetch_array($maj)) {
echo '<img src="images/comprofiler/'.$arr[1].'" title="carte identité" alt="carte identité">';
?>
<form method="post">
<label class="centrer">Validation de cette Carte d'identité ?<span style="color: #FFFFFF;">-------</span>Oui <input type="radio" name="civerif" id="civerif_oui" size="1" value="O"><span style="color: #FFFFFF;">----</span>Non <input type="radio" name="civerif" id="civerif_non" size="1" value="N" checked></label>
<label class="centrer"><input type="submit" class="button" name="validation" value="valider" /><br/></label>
</form>
<?php
if (isset($POST['validation'])) {
$ci = trim(htmlspecialchars((string) $POST['civerif']));
if ($ci=="O") {
$rab = "UPDATE syw7g_comprofiler SET cb_ci_verif=1 WHERE id=".$arr[0];
$modif = $conn->query($rab) or die('Erreur SQL !<br>'.$rab.'<br>'.mysqli_error());
mysqli_free_result($modif);
}
}
}
}
mysqli_free_result($maj);
$rab = "UNLOCK TABLES";
$ras = $conn->query($rab) or die('Erreur SQL !<br>'.$rab.'<br>'.mysqli_error());
mysqli_free_result($ras);
mysqli_close($conn);
echo '<p></p>';
echo '<h2>TRAITEMENT TERMINÉ</h2>';
?> |
Grand merci aux spécialistes php qui peuvent m'aider à sortir de ce guêpier !