Page 1 sur 2
Bon de commande PHP
Posté : 03 oct. 2014, 12:38
par davkosky
j'ai un petit programme web qui doit se dérouler comme suit ; un premier fichier enregistre les commandes avec un numéro dans la base données ;
ensuite il y a une listes de toutes les commandes saisies, maintenant là ou tout se mélange pour moi c'est que pour le bon de commande je veux pouvoir choisir le ou les numeros de commandes à mettre sur la fiche de bon commande qui est un formulaire qui recoit de manière automatique dans les champ de type input les numeros choisis au préalable dans la liste des numeros de commandes et à partir j fais l'envoi du formulaire en question
Re: BON DE COMMANDE PHP
Posté : 03 oct. 2014, 13:17
par xTG
Ouf.... Tu sais que c'est une torture à lire ?
J'en suis à la 3eme relecture de ta seule et unique phrase et j'ai toujours pas tout pigé...
Re: Bon de commande PHP
Posté : 03 oct. 2014, 17:55
par davkosky
j'ai un formulaire d'enregistrement de commande dans ma base de données
ces commandes ont chacun numéro.
je veux pouvoir afficher ces numéros sur une page php choisir ensuite les numeros de commandes que je veux , les envoyer à un autre formulaire qui lui va enregistrer ces données là dans une autre table de la base données.
est ce que c'est mieux cette explication ?
Re: Bon de commande PHP
Posté : 03 oct. 2014, 20:36
par moogli
salut,
qu'est ce que tu ne sais pas faire ? (la requête sql, utiliser php pour se connecter sur une base de données, créer un formulaire html ? etc etc).
parce ce que la c'est vague.
Ce que je peux te dire c'est que pour la première page tu as besoin d'un formulaire avec des checkbox.
Sur la seconde page tu auras besoin d'utiliser la notation tableau pour les noms de champs de formulaire (name="numero[]" par exemple).
après sans plus d'info de ta part sur ce qui ne va pas ou ce que tu ne sais pas faire (et sans le code associé) on ne peux pas t'aider.
@+
Re: Bon de commande PHP
Posté : 03 oct. 2014, 21:16
par davkosky
OK TU me comprends de mieux en mieux ,
j'ai fait une boucle pour lister tous les numeros enregitrer dans la base de données avec une case à cocher comme le presente le code ci dessous
choixnumeros.php
<td colspan="5"><strong>NUMEROS DE BON DE COMMANDES</strong><hr></td>
</tr>
<tr>
<td height="341" colspan="5">
<form action="" method=get"">
<?php
@$uuser=$_GET['user'];
require('pages/base.php');
// connection à la DB
$link = mysql_connect ($host,$user,$password) or die ('Erreur : '.mysql_error() );
mysql_select_db($bd) or die ('Erreur :'.mysql_error());
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements WHERE destinataire != 'labooi'
$select = "SELECT * FROM commande WHERE user='$uuser' ";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while($row=mysql_fetch_row($result))
{
echo '<option value="'.$row[1].'" data-abbr="'.$row[1].'" >'.$row[1].' - '.$row[9].'</option>';
echo'<br />
<br />';
echo''. $row[6].'<input name="'.$row[0].'" type="checkbox" value="'.$row[6].'" />
';
};
mysql_free_result($result);
?> <br />
<input name="Envoyer" type="submit" value="Valider" />
</form>
</td>
</tr>
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.
si tu veux bien je peux peut être te joindre les fichiers en question pour que tu puisse flancher dessus avec moi. lundi je me dois de rendre cela a mon chef
Re: Bon de commande PHP
Posté : 03 oct. 2014, 22:58
par moogli
Change le nom des checkboxs pour utiliser la notation tableau ensuite tu utilises un foreach pour récupérer les choix pour construire la requête sql avec une clause in dans le prédicat.
Malheureusement tes délais ne sont pas les miens et que ton chef soit content ou pas n'est pas le but du forum mais bien l'apprentissage de php.
@+
Re: Bon de commande PHP
Posté : 04 oct. 2014, 11:44
par davkosky
y a pas de soucis , je veux apprendre , à faire la procédure que tu viens de conseiller.
je vois pas trop comment effectuer ce que tu m'as conseillé
Re: Bon de commande PHP
Posté : 04 oct. 2014, 15:46
par yann18
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() );
}
Re: Bon de commande PHP
Posté : 04 oct. 2014, 17:34
par davkosky
ok yann merci pour la suggestion ,, je vais essayer de mettre cela en oeuvre,
mais je voudrais aussi dire que la deuxième table ou je veux enregistrer les id_commandes cochées est une table qui contient non seulement les id_commande mais reçoit d'autre informations comme le destinataire des commandes , la date , le montant total des commandes et autres ..
Re: Bon de commande PHP
Posté : 05 oct. 2014, 11:49
par yann18
je me pose la question sur ta logique qui sous-tend la création préalable d'un bon de commande dépourvue de date, de destinataire ou du total de la commande.Le bon de commande est d'abord crée puis à posteriori il est associé à la date, au destinataire...brèf j'ai du mal comprendre le pourquoi d'une telle démarche qui semble sortir de toute logique?
Je t'invite à lire un tuto sur la création d'un panier virtuel.
Re: Bon de commande PHP
Posté : 05 oct. 2014, 23:43
par davkosky
franchement j'avoue que la logique voudrait cela mais bon j'applique tes conseil mais il y a une erreur sql :
Erreur : Unknown column 'CIAZERTY23' in 'where clause
la requête: 'UPDATE commande SET traiter=1 WHERE num_com IN (CIAZERTY23,CIANZK555)
Re: Bon de commande PHP
Posté : 06 oct. 2014, 13:15
par davkosky
il y avait un problème de quotes dans le code que tu as écrit mais jai corrigé cela donc voici celui qui marche :
<?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
// connection à la DB
$link = mysql_connect ($host,$user,$password) or die ('Erreur : '.mysql_error() );
mysql_select_db($bd) or die ('Erreur :'.mysql_error());
$select = "SELECT * FROM commande WHERE user='$uuser' AND traiter=0";
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while($row=mysql_fetch_assoc($result))
{
echo '<input type="checkbox" name="commandes['. $row['num_com'].']" value="'.$row['num_com'].'" />'. $row['num_com'] . '<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 commande SET traiter=1 WHERE num_com IN $ids ";
$result = mysql_query($sql,$link) or die ('Erreur : '.mysql_error().$sql );
echo $sql;
}
?>
Re: Bon de commande PHP
Posté : 07 oct. 2014, 09:33
par moogli
merci d'utiliser le bbcode
si tu estime le sujet résolus merci de cliquer le bouton vert à droite du titre "marquer comme résolus"
@+
Re: Bon de commande PHP
Posté : 14 oct. 2014, 19:07
par davkosky
je n'ai pas le bouton mettre en resolu
Re: [RESOLU] Bon de commande PHP
Posté : 16 oct. 2014, 13:31
par moogli
arf, je n'avais pas vu que le 1er post était en invité.
au prochaine sujet créé tu pourras
merci
@+