Page 1 sur 1

Mon panier

Posté : 07 févr. 2007, 17:49
par Albat90
Bonjour,

Après avoir régler mon problème de formulaire et que tout va comme je le veux, il faut que je rajoute un système de panier à tout ça mais je cherche et je ne sais pas par où commencer ni comment y proceder.

Je vais vous presenter mon code et ma base :
<?php
@$form1 = $_GET['type'];
$_GET['type'] = $form1;
@$form2 = $_GET['cartouche'];
$_GET['cartouche'] = $form2;
@$form3 = $_GET['Ref'];
$_GET['Ref'] = $form3;
$based = "localhost";
$admin = "root";
$password = "";
$bdd = "base";
$connect = mysql_connect($based,$admin,$password);
mysql_select_db($bdd, $connect) or die("Impossible de se connecter");
echo '<form id="menuselect1" action="'.$_SERVER['PHP_SELF'].'" method="get"> 
<div align="center">
<select name="type" onchange="document.forms[\'menuselect1\'].submit()"> ';
$base = "SELECT DISTINCT Types FROM tarif$";
$req = mysql_query($base) or die('Erreur SQL !'.$sql.''.mysql_error());
echo '<option selected="selected">'.$form1.'</option>';
while($data = mysql_fetch_array($req)){
echo '<option>'.$data['Types'].'</option>';
}
echo '</select>
<noscript><input type="submit" name="ok" value="ok" /></noscript>';
if ($form1 == "") {
die();
}
else {
	echo '<select name="cartouche" onchange="document.forms[\'menuselect1\'].submit()"> '; 
	$base2 = "SELECT DISTINCT (Marques) FROM tarif$ WHERE Types = '$form1'";
	$req2 = mysql_query($base2) or die('Erreur SQL !'.$sql.''.mysql_error());
	echo '<option selected="selected">'.$form2.'</option>';
	while($data2 = mysql_fetch_array($req2)){
	echo '<option>'.$data2['Marques'].'</option>';
	}
	echo '</select>
	<noscript><input type="submit" name="ok" value="ok" /></noscript>';
		if ($form2 == "") {
		die();
		}
		else{
		echo '<select name="Ref" onchange="document.forms[\'menuselect1\'].submit()">';
		mysql_select_db($bdd) or die("Impossible de se connecter");
		$base3 = "SELECT DISTINCT (Ref) FROM tarif$ WHERE Marques = '$form2' AND Types = '$form1'";
		$req3 = mysql_query($base3) or die('Erreur SQL !'.$sql.''.mysql_error());
		echo '<option selected="selected">'.$form3.'</option>';
		while($data3 = mysql_fetch_array($req3)){
		echo '<option>'.$data3['Ref'].'</option>';
		}
		echo '</select>
		</form>';
			if ($form3 == "") {
			die();
			}
			else {
			echo '<table width="673" height="78" border="1">
  			<tr align="center" valign="middle">
    		<td width="100" height="40"><strong>Type de Produit </strong></td>
    		<td width="100" height="40"><strong>Marques du Fabriquant </strong></td>
    		<td width="100" height="40"><strong>R&eacute;f&egrave;rence du produit </strong></td>
    		<td width="100" height="40"><strong>Observation</strong></td>
			<td width="100" height="40"><strong>Code OEM</strong></td>
    		<td width="100" height="40"><strong>Prix HT en &euro; </strong></td>
    		<td width="100" height="40"><strong>Ajouter au panier </strong></td>
  			</tr>';
			$base4 = "SELECT * FROM tarif$ WHERE Ref = '$form3' AND Marques = '$form2' AND Types = '$form1'";
			$req4 = mysql_query($base4) or die('Erreur SQL !'.$sql.''.mysql_error());
			while($data4 = mysql_fetch_array($req4)){
  			echo '<tr align="center" valign="middle">
    		<td width="100" height="40"><strong>'.$data4['Types'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Marques'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Ref'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Observations'].'</strong></td>
			<td width="100" height="40"><strong>'.$data4['CODE OEM'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['PRIX'].'</strong></td>
    		<td width="100" height="40"><form id="panier" name="panier" method="POST" action="">
	  		<input type="submit" value="Ajouter"/>
    		</form></td>';
			} 
			}
		}
}
?>
Voila, et ma base incomplete peut etre telecharger sous forme de texte sur mon site : http://shishiza90.descis.info/base.txt.

Pour vous faciliter la tache, il y a deux produit qui s'affiche pour : Matricielle => ADP => Printronix
cela peut permettre de tester le script et comment ça sera avec la base complete que je n'ai pas d'ailleur...

Merci pour vos réponses ;)

Posté : 07 févr. 2007, 18:33
par mere-teresa
Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.

Posté : 07 févr. 2007, 18:38
par Albat90
gné???
Je ne veux pas qu'on me donne un script ou qu'on débug celui là, mon script fonctionne très bien, je veux juste qu'on m'aiguille sur une possibilité d'adapter un panier avec ce présent ^^.

Mais pour ça, faut bien que je fournisse des informations telle que la constitution de ma base ainsi que mon script.

Donc si quelqu'un veut bien m'aider ?

Merci de vos réponses ;)...

Posté : 07 févr. 2007, 21:03
par Cyrano
Une petite recherche sur le forum t'aurait fait découvrir un tuto sur le sujet, enfin je dis ça, mais encore faut-il penser à utiliser la recherche.... :-*

Posté : 08 févr. 2007, 11:05
par Albat90
Bah j'ai fais une recherche, et j'était deja tombé sur un sujet appelé panier et y avais aussi le liens que tu viens de me donner mais dans ton tuto, si c'est le tiens :), je ne comprend pas très bien le principe, que signifie les select etc....
C'est pour ça que je post pour savoir si un système de panier est adaptable sur mon script et si non, bah quesqu'il faut changer?

Merci de vos réponses ;)...

PS: t'inquiete, je cherche de mon coté, je n'ai que ça a faire de toute façon, je ne vais pas attendre que le script vienne a moi et mon but ce n'est pas de recopier ni en avoir un sans comprendre, mais mon but c'est de le faire moi même et que je sais se que je fais pour pouvoir ensuite l'expliquer à ma prochaine soutenance qui compte pour mon examun ^^.

Posté : 08 févr. 2007, 11:57
par Albat90
Voila, je suis en train de resuivre le tuto et je retombe toujours sur le même problème depuis hier.

j'en suis ici :
<?php 
/* Démarrage ou prolongation de la session */ 
session_start(); 
/* Article exemple */ 
$select = array(); 
$select['id'] = "phlevis501"; 
$select['qte'] = 2; 
$select['taille'] = "56"; 
$select['prix'] = 84.95; 

/* On vérifie l'existence du panier, sinon, on le crée */ 
if(!isset($_SESSION['panier'])) 
{ 
    /* Initialisation du panier */ 
    $_SESSION['panier'] = array(); 
    /* Subdivision du panier */ 
    $_SESSION['panier']['qte'] = array(); 
    $_SESSION['panier']['taille'] = array(); 
    $_SESSION['panier']['prix'] = array(); 
} 

/* Ici, on sait que le panier existe, donc on ajoute l'article dedans. */ 
array_push($_SESSION['panier']['id_article'],$select['id']); 
array_push($_SESSION['panier']['qte'],$select['qte']); 
array_push($_SESSION['panier']['taille'],$select['taille']); 
array_push($_SESSION['panier']['prix'],$select['prix']); 

/* Affichons maintenant le contenu du panier : */ 
?> 
<pre> 
<?php 
var_dump($_SESSION['panier']); 
?> 
</pre> 
mon code c'est celui là :
<?php
session_start();
$_SESSION['panier'] = array();
$_SESSION['panier']['id_article'] = array();
$_SESSION['panier']['qte'] = array(); 
$_SESSION['panier']['oem'] = array(); 
$_SESSION['panier']['prix'] = array(); 
@$form1 = $_GET['type'];
$_GET['type'] = $form1;
@$form2 = $_GET['cartouche'];
$_GET['cartouche'] = $form2;
@$form3 = $_GET['Ref'];
$_GET['Ref'] = $form3;
$based = "localhost";
$admin = "root";
$password = "";
$bdd = "base";
$connect = mysql_connect($based,$admin,$password);
mysql_select_db($bdd, $connect) or die("Impossible de se connecter");
echo '<form id="menuselect1" action="'.$_SERVER['PHP_SELF'].'" method="get"> 
<div align="center">
<select name="type" onchange="document.forms[\'menuselect1\'].submit()"> ';
$base = "SELECT DISTINCT Types FROM tarif$";
$req = mysql_query($base) or die('Erreur SQL !'.$sql.''.mysql_error());
echo '<option selected="selected">'.$form1.'</option>';
while($data = mysql_fetch_array($req)){
echo '<option>'.$data['Types'].'</option>';
}
echo '</select>
<noscript><input type="submit" name="ok" value="ok" /></noscript>';
if ($form1 == "") {
die();
}
else {
	echo '<select name="cartouche" onchange="document.forms[\'menuselect1\'].submit()"> '; 
	$base2 = "SELECT DISTINCT (Marques) FROM tarif$ WHERE Types = '$form1'";
	$req2 = mysql_query($base2) or die('Erreur SQL !'.$sql.''.mysql_error());
	echo '<option selected="selected">'.$form2.'</option>';
	while($data2 = mysql_fetch_array($req2)){
	echo '<option>'.$data2['Marques'].'</option>';
	}
	echo '</select>
	<noscript><input type="submit" name="ok" value="ok" /></noscript>';
		if ($form2 == "") {
		die();
		}
		else{
		echo '<select name="Ref" onchange="document.forms[\'menuselect1\'].submit()">';
		mysql_select_db($bdd) or die("Impossible de se connecter");
		$base3 = "SELECT DISTINCT (Ref) FROM tarif$ WHERE Marques = '$form2' AND Types = '$form1'";
		$req3 = mysql_query($base3) or die('Erreur SQL !'.$sql.''.mysql_error());
		echo '<option selected="selected">'.$form3.'</option>';
		while($data3 = mysql_fetch_array($req3)){
		echo '<option>'.$data3['Ref'].'</option>';
		}
		echo '</select>
		</form>';
			if ($form3 == "") {
			die();
			}
			else {
			echo '<table width="673" height="78" border="1">
  			<tr align="center" valign="middle">
    		<td width="100" height="40"><strong>Type de Produit </strong></td>
    		<td width="100" height="40"><strong>Marques du Fabriquant </strong></td>
    		<td width="100" height="40"><strong>R&eacute;f&egrave;rence du produit </strong></td>
    		<td width="100" height="40"><strong>Observation</strong></td>
			<td width="100" height="40"><strong>Code OEM</strong></td>
    		<td width="100" height="40"><strong>Prix HT en &euro; </strong></td>
    		<td width="100" height="40"><strong>Ajouter au panier </strong></td>
  			</tr>';
			$base4 = "SELECT * FROM tarif$ WHERE Ref = '$form3' AND Marques = '$form2' AND Types = '$form1'";
			$req4 = mysql_query($base4) or die('Erreur SQL !'.$sql.''.mysql_error());
			while($data4 = mysql_fetch_array($req4)){
  			echo '<tr align="center" valign="middle">
    		<td width="100" height="40"><strong>'.$data4['Types'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Marques'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Ref'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['Observations'].'</strong></td>
			<td width="100" height="40"><strong>'.$data4['CODE OEM'].'</strong></td>
    		<td width="100" height="40"><strong>'.$data4['PRIX'].'</strong></td>
    		<td width="100" height="40"><form id="panier" name="panier" method="POST" action="">
	  		<input type="submit" value="Ajouter"/>
    		</form></td>';
			} 
			}
		}
}
?>
Comment je pourrais rajouter les informations dans $select appart manuellement en sachant que mon bouton ajouter pour l'instant est indépendant des articles car on voit très bien que j'affiche juste à l'aide de ma base de données et que pour l'instant mon script ressemble plus à un système de recherche qu'à un script pour vendre avec un système de panier...

Donc ma question, comment je peux inserer les valeurs dans $select[prix] par exemple pour pouvoir ensuite les rentrer dans la variable $_session ???

Merci de vos réponses ;).

Posté : 08 févr. 2007, 12:56
par iclo
Petit conseil: enleve les @ devant les instructions de récupérations de variables. il ne faut pas masquer les messages d'erreurs, mais gérer le fait qu'une variable qu'on espère recevoir par post peut ne pas exister.

Il faut donc faire:
if (isset($_GET['type']))
   $form1 = $_GET['type'];
else
   $form1 = "";

Posté : 08 févr. 2007, 12:59
par Albat90
Et il faut que je fasse ça pour chaque variable que je transmet???
Je ne met pas d'accolade au if et else???

Posté : 08 févr. 2007, 13:06
par iclo
Oui, et de manière générale, il vaut mieux aussi vérifier si ce que l'utilisateur a saisi est cohérent (je ne sais si tu le fais dans ce script) pour éviter des problèmes tel que l'injection sql.

Pas besoin d'accolade, vu qu'il n'y a qu'une seule instruction à effectuer dans les deux cas, mais ce ça ne poserait aucun problème d'en mettre.