IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Total panier somme bouton radio


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Total panier somme bouton radio
    Bonjour all,
    Je suis nouveau sur le forum donc je vais essayer d'être le plus clair possible.
    Voila, je suis sur un projet à faire et j'ai presque fini me reste juste à calculer le prix total de ma commande.
    pour cela j'ai une table "objet" avec les colonne identifiant,prix,nom,stock.
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    41
    <form id="monForm" action="commande.php"  method="post">
    	<fieldset>
    		<table>
    						<caption>commande</caption>
    						<colgroup>
    						<col span="1" id="navcol"/>
    						<col span="1" id="numcol"/>
    						</colgroup>
    						<tr><th>Identifiant</th><th>Nom</th><th>Prix</th><th>Stock</th><th>Etat</th></tr>
    <?php
    	if(isset($_POST['val'])){
    		$idconnect=mysqli_connect('localhost','root',NULL,'bd');				
    		foreach($_POST as $key => $val) {
    			if($key!='conf') {
    				$query="select *from article where identifiant='$key' ";
    				$result=mysqli_query($idconnect,$query);
    					while($row=mysqli_fetch_row($result)) {
    						$identifiant=$row[0];
    						$nom=$row[1];
    						$prix=$row[2];
    						$stock=$row[3];
    						$radio='<input type="radio" checked="checked" name="'.$identifiant.'"/>';
    						echo '<tr><td>'.$identifiant.'</td><td>'.$nom.'</td><td>'.$prix.'</td><td>'.$stock.'</td><td>'.$radio.'</td></tr>';
    //ici je veux ajouter une ligne avec le montant total des article avec un bouton radio.					
    					}
    			}
    		}
    		mysqli_close($idconnect);
    	}
     
    ?>
    </table>
    		<p>
    		<label class="nostyle">&nbsp;</label>
    		<input type="submit" value="Confirmer" name="conf"/></p>
    		<p>
    		<label class="nostyle">&nbsp;</label>
    		<input type="submit" value="Annuler" name="res"/></p>
     
    </fieldset>
    </form>
    Je voudrais calculer le montant total de mes article avec un bouton radio checké .
    Mais je ne sais pas comment faire , donc SVP help me

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne comprends pas très bien ta requête ; tu cherches les articles par prix ?

    Par ailleurs, mettre une requête SELECT dans une boucle n'est pas du tout performant. Construis une requête IN.
    Également, il ne faut pas placer directement les données provenant du formulaire dans la requête, cela ouvre la possibilité aux injections SQL.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Desole mais j'ai rien compri je suis debutant
    Non par identifiant c'est une erreur ...je ne connais pas la requete IN

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Voila ce que j'ai fait avant si ca peut vous aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    <form name="valider" id="monForm" action="commande.php" method="post" >
    <?php
    		$idconnect=mysqli_connect('localhost','root',NULL,'bd');
    		$query="select * from article where stock>=1 order by nom";
    		$result=mysqli_query($idconnect,$query);
    		if(mysqli_num_rows($result)==0) {
    		echo '<form id="monForm"  method="post">
    				<fieldset>
    					<legend>Liste des clients</legend>
    					<p>aucun article.</p>
    				</fieldset>
    			</form>';
    		} else {
    		echo '
    		<table>
    						<caption>Articles en stock</caption>
    						<colgroup>
    						<col span="1" id="navcol"/>
    						<col span="1" id="numcol"/>
    						</colgroup>
    						<tr><th>Identifiant</th><th>Titre</th><th>Prix</th><th>Stock</th><th>Commander</th></tr>';
    					while($row=mysqli_fetch_row($result)) {
    						$identifiant=$row[0];
    						$nom=$row[1];
    						$prix=$row[2];
    						$stock=$row[3];
    						$check='<input type="checkbox" name="'.$identifiant.'"/>';
    						echo 
    						'<tr><td>'.$identifiant.'</td><td>'.$nom.'</td><td>'.$prix.'</td><td>'.$stock.'</td><td>'.$check.'</td></tr>';
    					}
    		}
    		echo '</table>';
     
    		mysqli_close($idconnect);
     
    ?>
    	<p><label  class="nostyle">&nbsp;</label>
    	<input type="submit" value="Valider ma commande" name="val"/></p>
    </form>
     
    <form name="afficher" id="monForm" action="index.php" method="post" >
    			<fieldset>
    				<legend>Liste articles</legend>
    				<p><label  class="nostyle">&nbsp;</label>
    					<input type="submit" value="Afficher" name="af"/></p>
    			</fieldset>
    	</form>	
     
    <?php
    		if(isset($_POST['af'])){
    		$idconnect=mysqli_connect('localhost','root',NULL,'bd');
    		$query="select * from article order by prix ";
    		$result=mysqli_query($idconnect,$query);
    		mysqli_close($idconnect);
    		if(mysqli_num_rows($result)==0) {
    		echo '<form id="monForm"  method="post">
    				<fieldset>
    					
    					<p>aucun article.</p>
    				</fieldset>
    			</form>';
    		} else {
     
    		echo '<form id="monForm" action="commande.php"  method="post">
    				<fieldset>
    				<table>
    					<tr><th>Identifiant</th><th>Titre</th><th>Prix</th><th>Stock</th></tr>';
    					while($row=mysqli_fetch_row($result)) {
    						$identifiant=$row[0];
    						$nom=$row[1];
    						$prix=$row[2];
    						$stock=$row[3];
    						echo '<tr><td>'.$identifiant.'</td><td>'.$nom.'</td><td>'.$prix.'</td><td>'.$stock.'</td></tr>';
    					}
    		}
    		echo '</table>
    		</fieldset>
    		</form>';
    	}
     
    ?>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Déjà nomme tes champs de formulaire en tableau avec l'indication qu'il s'agit de l'id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'name="id[' . $id . ']"
    et non pas directement l'id tout nu
    Ca pourrait ensuite donner ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if(isset($_POST['val'])){
    		$total = 0;
    		$idconnect=mysqli_connect('localhost','root','','bd');
                    $tblId = array_map('intval', $_POST['id']); // on force le type entier sur tous les éléments du tableau
                    $query="SELECT id, nom, prix, stock FROM article WHERE id IN (" . implode(',', $tblId) . ')';
                    $result=mysqli_query($idconnect,$query);
    		while($row=mysqli_fetch_row($result)) {
    				echo '<tr>
    						<td>'.$row['identifiant'].'</td>
    						<td>'.$row['nom'].'</td>
    						<td>'.$row['prix'].'</td>
    						<td>'.$row['stock'].'</td>
    						<td><input type="radio" checked="checked" name="'.$row['prix'].'"/></td>
    					</tr>';
    		$total += $row['prix'];
    		}
    echo '</table>';
    echo '<p>Total : ' . $total . '</p>';
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    oui mais le nom de l'article est un string donc je ne comprend pas pourquoi vous utilisez tblId ???

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    J'ai trouvé merci ,comme j'ai pas compris cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $tblId = array_map('intval', $_POST['id']); // on force le type entier sur tous les éléments du tableau
                    $query="SELECT id, nom, prix, stock FROM article WHERE id IN (" . implode(',', $tblId) . ')';
    je l'ai enlevé et remis avec le foreach de la version que j'avais au départ

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ta version "foreach" est une mauvaise methode.
    Il faut manipuler les id et pas les noms de produit.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    tu as surement raison mais comme quand j'ai testé ta méthode ca m'a mis des erreurs partout et comme je ne l'a comprend pas je ne savais pas d'où venais le problème!

Discussions similaires

  1. Réponses: 33
    Dernier message: 26/05/2010, 19h09
  2. recupérer la valeur d'un bouton radio
    Par ericmart dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 19/05/2008, 15h42
  3. [CR]liste de boutons radio
    Par inesfonfon dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 16/09/2004, 09h04
  4. Problème de boutons radio
    Par BRAUKRIS dans le forum Composants
    Réponses: 3
    Dernier message: 03/06/2004, 02h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo