Probleme PHP logique

Fermé
nooz - 17 juil. 2009 à 22:01
 nooz - 18 juil. 2009 à 15:00
Bonjour,

Voila, je m'explique, en fait sur deux pages differentes j'ai deux listes dans lesquels un utilisateur peut choisir des produits.
Ces produits se trouvent dans deux tableaux differents et je les identifies par leurs id.
L'utilisateur ajoute les produits dans un panier, j'utilise donc $_SESSION pour sauvegarder tous ca. Comme bien evidemment les id des produits du premiers tableau sont des nombres identitques a ceux du deuxieme tableau, j'ai fait que les id des objets du deuxieme tableau soit ajoute a $_SESSION precede de la lettre Z.

Maintenant mon but est de remettre ces objets dans un meme tableau.

J'arrive donc par cette commande a recuperer les objets du premiers tableau.

$commande = mysql_query("SELECT * FROM tableau_produit_1 WHERE id_item = ".$_SESSION["id_item"][$i]." ORDER BY id_item DESC")

Mais comment faire alors pour recuperer egalement ceux du deuxieme tableau ? Je ne parviens pas a creer de commande qui permette de dire :
Si le produit commence par Z, chercher dans le tableau_produit_2 sans le Z.

Je sais que cela peut etre complique, mais une main tendue me serait tres utile.
Si quelqu'un a une solution qui exclue le changement d'ID pour les produits, ce serait parfait.

Merci d'avance !

7 réponses

Cela marcherait-il avec cette formule ? :


$commande = mysql_query("SELECT * FROM (tableau_produit_1)AND(tableau_produit_2) WHERE (id_item = ".$_SESSION["id_item"][$i].")OR('Z'.id_item = ".$_SESSION["id_item"][$i].") ORDER BY id_item DESC")

Je ne sais pas bien comment utiliser le OR et le AND.
0
lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
17 juil. 2009 à 22:12
Bonjour,

Il faut que tu travailles sur la deuxieme string en php ou en sql.

$id2=substr($_SESSION["id_item2"][$i],1) ce qui va retirer ta premiere lettre

ou directement dans la commande SQL car substr existe en SQL.

Hope it helps.
Cube
0
Ton idee est interressante. Merci !

Mais puis-je sinon faire une association des deux tableaux (que je ne sais pas faire) en ajoutant Z aux id du deuxieme ?

Pour finalement chercher les produits cette association ?
0
lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
18 juil. 2009 à 10:45
J'ai un doute sur le fait que j'ai bien compris ta question ...Tes deux listes ont un nom different que je pense devner id_item et id_item2, n'est ce pas ?

Donc une requete :
$commande = mysql_query("SELECT * FROM tableau_produit_1 t1,tableau_produit_2 t2 WHERE t1.id_item = ".$_SESSION["id_item"][$i]." OR t2.id_item = ".$_SESSION["id_item2"][$i].")
te donne tout ce que la personne a demande ?

Hope it helps.
Cube
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tout d'abord merci pour toute ton aide.

Je comprends cependant que ta derniere proposition ne vas pas marcher.
Je precise :

J'ai donc deux tables totalement identiques : tableau_produit_1 et tableau_produit_2
Elles sont toutes deux composees d'une colonne identique appelle id_item, qui sont des entiers.

L'utilisateur selectionne donc sur deux pages distinctes les objets de tableau_produit_1 et de tableau_produit_2 de sorte qu'ils soit ajoutes a SESSION. Cependant, leurs id_item pouvant etre egal, j'ai fait en sorte que l'id des produits de tableau_produit_2 soit ajoute a session precede de la lettre Z.

J'ai donc finalement dans ma SESSION, des objets produits du tableau 1 de la forme : id_item=21 (ou tout autre entier) et des objets du tableau 2 de la forme id_item=Z45 (ou tout autre entier precede de Z).

Comment puis-je faire maintenant pour recuperer les objets dans leurs tableaux respectif en fonction des donnee de la SESSION.

J'espere que cela a pu t'eclairer.

Je te remercie encore pour ton attention, et m'excuse de ne pas pouvoir m'etre d'accent, mon clavier est en qwerty...
Cordialement.
0
lecube Messages postés 304 Date d'inscription samedi 14 mars 2009 Statut Membre Dernière intervention 13 avril 2010 54
18 juil. 2009 à 13:27
C'est plus clair .... ;-P
Que pense tu de :

$commande = mysql_query("SELECT * FROM tableau_produit_1 t1,tableau_produit_2 t2 WHERE t1.id_item = ".$_SESSION["id_item"][$i]." OR "Z"+t2.id_item = ".$_SESSION["id_item"][$i].")

Hope it helps.
Cube
0
Voici le code modifier avec mon cas :

$commande = mysql_query("SELECT * FROM items t1,items_wow t2 WHERE t1.id_item = ".$_SESSION["id_item"][$i]." OR "wow"+t2.id_item = ".$_SESSION["id_item"][$i].");

J'ai change la lettre en wow.

L'erreur est la suivante :
Parse error: syntax error, unexpected T_STRING in /homepages/23/d268118479/htdocs/compte.php on line 876

la ligne 876 etant la ligne concerne
0