Tester 2 conditions
Résolu
mike
-
mike -
mike -
Bonjour à tous,
Voilà j'ai un souci sur un test de contition php :
En gros mon souci est que je n'arrive pas à lui faire valider les 2 conditions, si l'une des deux est "vrai", alors retour au panier.
EX : dans mon panier j'ai 1 article de taille 29 et modele pierrepauljack, si je veux ajouter un modele tarteenpion et de taille 29, je ne peux pas car les tailles sont identique or les modele sont différents donc l'ajout devrai se faire mais ça coince.
Un petit coup de pouce siou plait.Merci
Voilà j'ai un souci sur un test de contition php :
if($data['taille'] != $taille && $data['modele'] != $modele_article) { requete sql; } else { retour au panier }
En gros mon souci est que je n'arrive pas à lui faire valider les 2 conditions, si l'une des deux est "vrai", alors retour au panier.
EX : dans mon panier j'ai 1 article de taille 29 et modele pierrepauljack, si je veux ajouter un modele tarteenpion et de taille 29, je ne peux pas car les tailles sont identique or les modele sont différents donc l'ajout devrai se faire mais ça coince.
Un petit coup de pouce siou plait.Merci
A voir également:
- Tester 2 conditions
- Flash drive tester - Télécharger - Divers Utilitaires
- Supercopier 2 - Télécharger - Gestion de fichiers
- Tester son pc - Guide
- Tester composant pc - Guide
- Tester disque dur - Télécharger - Informations & Diagnostic
4 réponses
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é.
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.