Tester 2 conditions
Résolu/Fermé
A voir également:
- Tester 2 conditions
- Tester son pc - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- 2 comptes whatsapp - Guide
- Tester signal wifi gratuit - Guide
- 2 ecran pc - Guide
4 réponses
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
25 sept. 2012 à 00:06
25 sept. 2012 à 00:06
Donc, si je comprends bien, ta condition était juste là pour vérifier si le produit est déjà dans le panier.
Je vois là un problème.
Ta requête tel que l'utilise ici:
Te retourne le dernier enregistrement de ta table. Uniquement le dernier.
Je suppose toutefois que ton panier peut comporter plusieurs produits.
Autrement dit, tu vérifie là seulement si celui que tu cherches à ajouter est (ou non) le dernier. Mais ce produit peut être l'avant dernier.
Je suppose également que tes produits sont également enregistré dans une autre table et qu'elle contient toutes les données concernant ces produits.
Partons de ce principe.
Ton panier doit comporter au minimum ces informations:
Le champ identifie le produit (par son ID par exemple).
Le champ taille indique le taille souhaité.
Le nombre est la quantité de produit voulu.
Le champ membre identifie le membre afin de ne pas amalgamer la commande Jean avec celle de Paul.
Dans ton formulaire, je suppose que tu as une liste de produit, d'une manière qui ressemble à celle-ci.
Côté PHP, tu peux gérer l'ajout à la BDD de la manière suivante:
Au lieu d'annoncer que le produit est déjà présent dans le panier, tu peux aussi ajouter le nouveau nombre à ceux déjà présent et les additionner.
J'espère t'avoir aidé.
Je vois là un problème.
Ta requête tel que l'utilise ici:
$sql = "select * from panier where id='".$_SESSION['id']."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req);
Te retourne le dernier enregistrement de ta table. Uniquement le dernier.
Je suppose toutefois que ton panier peut comporter plusieurs produits.
Autrement dit, tu vérifie là seulement si celui que tu cherches à ajouter est (ou non) le dernier. Mais ce produit peut être l'avant dernier.
Je suppose également que tes produits sont également enregistré dans une autre table et qu'elle contient toutes les données concernant ces produits.
Partons de ce principe.
Ton panier doit comporter au minimum ces informations:
produit, taille, nombre, membre
Le champ identifie le produit (par son ID par exemple).
Le champ taille indique le taille souhaité.
Le nombre est la quantité de produit voulu.
Le champ membre identifie le membre afin de ne pas amalgamer la commande Jean avec celle de Paul.
Dans ton formulaire, je suppose que tu as une liste de produit, d'une manière qui ressemble à celle-ci.
<form method="post"> <input type="hidden" name="id_produit" value="1" /> <p>Produit 1</p> <p>Nb: <input name="nb" /></p> <p>Taille: <select name="taille"> <option value="40">40</option> <option value="41">41</option> <option value="42">42</option> <option value="43">43</option> </select></p> <p><input type="submit" name="ajout_panier" value="Ajouter au panier" /></p> </form>
Côté PHP, tu peux gérer l'ajout à la BDD de la manière suivante:
<?php // Connecion BDD... $sql='SELECT * FROM panier WHERE id_produit="'.mysql_real_escape_string($_POST['id_produit']).'" AND membre="'.mysql_real_escape_string($_SESSION['id_membre']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $nb = mysql_num_rows($req); id($nb>0) echo'Ce produit est déjà dans le panier'; else{ $sql='INSERT INTO panier (id_produit,nb,taille,membre) VALUES ....'; mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); } ?>
Au lieu d'annoncer que le produit est déjà présent dans le panier, tu peux aussi ajouter le nouveau nombre à ceux déjà présent et les additionner.
J'espère t'avoir aidé.
arthezius
Messages postés
3538
Date d'inscription
jeudi 15 mai 2008
Statut
Membre
Dernière intervention
11 septembre 2016
475
24 sept. 2012 à 23:08
24 sept. 2012 à 23:08
Je comprends ton problème mais j'ai du mal à te guider sur ton code car il est trp minimaliste et hors contexte.
Toujours est-il que pour résoudre ton problème tu ne peux pas gérer les deux conditions simultanément.
Pour t'aider d'avantage il me faudrait le code réelle de ta page. Je ne sais pas d'où proviennent ce variable et du coup comment tu procèdes pour gérer ton panier.
Toujours est-il que pour résoudre ton problème tu ne peux pas gérer les deux conditions simultanément.
Pour t'aider d'avantage il me faudrait le code réelle de ta page. Je ne sais pas d'où proviennent ce variable et du coup comment tu procèdes pour gérer ton panier.
Voici le code complet
Je veux juste que les 2 conditions soit vrai et non une seule. Merci
<?php session_start(); if($_SESSION['id']==0) { header("location:index.php"); } else { mysql_connect('xxx', 'xxxxx', 'xxxxx'); mysql_select_db('xxxxx'); mysql_set_charset ('UTF8'); $sql = "select * from panier where id='".$_SESSION['id']."'"; $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysql_fetch_assoc($req); $modele_article = $_POST['modele_article']; $taille = $_POST['taille']; if($data['taille'] != $taille && $data['modele'] != $modele_article) { $sql1 ='INSERT INTO panier(id, id_article, nom, modele, composition, delavage, descriptif, taille, quantite, prix) VALUES ("'.$_SESSION['id'].'","'.$_POST['id_article'].'","'.$_POST['nom_article'].'","'.$_POST['modele_article'].'","'.$_POST['composition_article'].'","'.$_POST['delavage_article'].'","'.$_POST['descriptif_article'].'","'.$_POST['taille'].'","'.$_POST['qte'].'","'.$_POST['prix_total'].'")'; $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); header('location:panier.php'); } else { echo 'Cet article est déja présent dans votre panier<br/>'; echo '<a href=panier.php>Retour au panier</a>'; }} ?>
Je veux juste que les 2 conditions soit vrai et non une seule. Merci
Cerveau vraiment brillant ^^, car ma table et mon formulaire ressemble a peu de chose près à cela ( en plus complet ^^ ).
Cependant ma requête ne me retourne pas que le dernier car si j'ajoute un article taille 29 puis un 30, je ne pourrais pas ajouter un autre 29 ( ou un autre 30), quoiqu'il en soit, je vais retenir l'idée d'ajouter la quantité quand l'article est identique, ce sera plus simple.
Merci à toi l'ami.
Cependant ma requête ne me retourne pas que le dernier car si j'ajoute un article taille 29 puis un 30, je ne pourrais pas ajouter un autre 29 ( ou un autre 30), quoiqu'il en soit, je vais retenir l'idée d'ajouter la quantité quand l'article est identique, ce sera plus simple.
Merci à toi l'ami.