par
yann18 » 04 oct. 2014, 15:46
pour la deuxième page je ne sais pas quel script utiliser pour récupérer et afficher les numéros choisis de la première dans des champs input que je vais envoyer dans ma base de données.
ta démarche met à mal l'expérience utilisateur car si ton objectif était de faire fuir les utilisateurs alors il est atteint: l’internaute doit cocher des id commande, ces ids doivent aller pré-remplir les inputs d'un autre formulaire qui lui même s'en chargera d'insérer les ids. Je peux peut être me tromper(ou j'ai mal compris ton problème) j'en vois aucune logique dans ta démarche sinon que de la lourdeur.
je te propose ceci:
dans ta table commande, ajoutes-en une colonne appelée
etat de type
tinynt de préférence ou de tout autre type. Ce champ à la création aura une valeur par défaut 0 (0 pour non coché ou non traité).
Une fois tes id commandes cochés, tu lances une requête de mise jour sur la colonne etat qui passera à 1 (1 pour coché ou traité).
Bien sûr que tu auras besoin de la notation tableau( le name du checbox posfixé par []) comme @moogli t'a expliqué.
<?php
echo '<form method="post"'>;
//$select = "SELECT * FROM commande WHERE user='$uuser' ";
//afficher uniquement les commandes n'ayant pas été traités c-a-d etat=0
$select = "SELECT * FROM commande WHERE user='$uuser' AND etat=0";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while($row=mysql_fetch_assoc($result))
{
echo '<input type="checkbox" name="commandes['. $row['id_commande'].']" value="'.$row['id_commande'].'" />'. $row['id_commande'] . '<br>';
}
echo '<input type="submit" name="valider">';
echo '</form>';
//soumission du formulaire puis exécution de la requête update
if( isset( $_POST['commandes'] ) ){
$ids='('.implode(',', $_POST['commandes']) .')';
$sql ="UPDATE table_commande SET etat=1 WHERE id_commande IN $ids )";
$result = mysql_query($sql,$link) or die ('Erreur : '.mysql_error() );
}
?>
si l'idée d'ajouter une colonne dans la table commande ne te convient pas et que tu tiens à insérer des ids commande dans une autre table tu peux modifier juste la partie du traitement du formulaire:
//soumission du formulaire puis exécution de la requête insert
$ids = array();
if( isset( $_POST['commandes'] ) ){
foreach( $_POST['commandes'] as $val ){
$ids[] = '('.$val.')';
}
mysql_query('INSERT INTO table (id_commande) VALUES '.implode(',', $ids)) or die ('Erreur : '.mysql_error() );
}