Shopping cart

Eléphant du PHP | 331 Messages

18 sept. 2006, 20:22

Salut,

Je suis parvenu à faire afficher le contenu de mon panier.

Je souhaite cependant que tu me donne ton avis sur mon code car je ne suis pas certains d'avoir utilisé la meilleure méthode.

J'ai mis une requête mysql dans ma boucle d'affichage du panier pour pouvoir afficher le nom des produits contenu dans le panier.

Alors, si mon panier contient 50 produits la requête sera exécuté 50 fois.

Est-ce correct?
mysql_connect($host, $login, $password);
mysql_select_db($db);
$query3="select * from produits";
$result3=mysql_query($query3);
while($row3=mysql_fetch_array($result3))
{
$values[]=array("nom"=>$row3["nom"],"description"=>$row3["description"]);
}


for($i = 0;$i < sizeof($values); $i++) {
     echo " ".$values[$i]["nom"]. "<br>\n";
}
Merci!

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

19 sept. 2006, 10:40

J'ai mis une requête mysql dans ma boucle d'affichage du panier pour pouvoir afficher le nom des produits contenu dans le panier.

Alors, si mon panier contient 50 produits la requête sera exécuté 50 fois.

Est-ce correct?
Pas incorrect, mais pas très économique.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphant du PHP | 331 Messages

21 sept. 2006, 22:07

Bonjour,

Mon panier fonctionne en autant que je permette d'y ajouter un article à la fois. Chaque article ayant son bouton ajouter au panier.

Cependant, mes besoin sont que mes produits doivent être affiché un en dessous de l'autre avec un bouton radio. Un bouton "Submit" au bas du formulaire et les produits sélectionnés seront ajouté au panier.

Actuellement de la façon dont j'ai fais mon code c'est le dernier produit de ma liste qui est ajouté au panier. Même si ce dernier n'a pas été sélectionné.

Je vous montre mon code en espérant que vous pourrez m'indiquez mon erreur:

Voici le formulaire:
echo "<form action=\"caddy.php\" method=\"post\">\n";

mysql_connect($host, $login, $password);

mysql_select_db($db);

$query2 = "SELECT cp.id, cp.prix, cp.id_produit, p.nom ".

          "FROM clients_produits AS cp, produits AS p ".

          "WHERE p.id = cp.id_produit ".

          "AND cp.id_client='". $_SESSION['id_client'] ."'"; $result2=mysql_query($query2);

while($row2=mysql_fetch_array($result2))

{

echo "<tr>\n";

echo "<td>\n";

echo "".$row2["nom"]."<input type=\"hidden\" name=\"id_produit\" value=\"".$row2["id_produit"]."\" size=\"25\"></td>\n";

echo "<td>".$row2["prix"]."$<input type=\"hidden\" name=\"prix\" value=\"".$row2["prix"]."\"></td>\n";

echo "<td><input type=\"text\" name=\"qte\" size=\"5\"></td>\n";

echo "<td><input type=\"radio\" name=\"ajout_".$row2["id_produit"]."\"></td>\n";

echo "</tr>\n";

}

echo "<tr>\n";

echo "<td align=\"center\" colspan=\"\"><input type=\"submit\" name=\"ajout\" value=\"Envoyer\">\n";

echo "</form>\n";

echo "</td>\n";

echo "</tr>\n";
Voici mon panier:
session_start();
///////////////////////////////
if(!isset($_SESSION["panier"]))
{
$_SESSION["panier"] = array();
$_SESSION["panier"]["id_produit"] = array();
$_SESSION["panier"]["qte"] = array();
$_SESSION["panier"]["prix"] = array();
}
if(isset($_POST["ajout"]))
{
$select = array();
$select["id"] = $_POST["id_produit"];
$select["qte"] = $_POST["qte"];
$select["prix"] = $_POST["prix"]; 
}
function ajout($select)
{
    array_push($_SESSION["panier"]["id_produit"],$select["id"]);
    array_push($_SESSION["panier"]["qte"],$select["qte"]);
    array_push($_SESSION["panier"]["prix"],$select["prix"]);
}
///////////////////////////////
ajout($select);
Je suis près de la solution finale de mon site, alors encore un petit coup d'aide svp .

Merci!

Eléphant du PHP | 331 Messages

22 sept. 2006, 02:01

Oublié ça j'ai réglé mon prob a l'aide d'un post sur ce sujet dans le forum