IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Ajout au panier [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut Ajout au panier
    Bonjour tout le monde,

    Je suis entrain de réaliser un site web mais lorsque je clique sur l'article que je souhaite ajouter à mon panier --> rien ne se passe c'est à dire ma variable de session['panier'] reste vide.

    Voici le code de mon contrôle correspondant au catalogue des articles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    	$LaCategorieChoisie=$_GET["choix"];	// Insertion de la méthode GET dans la variable "lacategoriechoisie"
     
    	$categorie=DAO_Categorie::ChargerUneCategorie($LaCategorieChoisie);
     
    	$art=DAO_Article::Charger_ToutArticleNeuf($categorie);
     
    	// Include permet d'exécuter la vue suivante : "vue du catalogue"
    	include ("Vues/V_CatalogueMotoNeuve.php");
    ?>
    Voici le code correspondant à la vue du catalogues des articles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <table>
    	<tr>
    		<th><h2>Photos</h2></th>				<!-- Création de la colonne "Photos" -->
    		<th><h2>Code</h2></th>					<!-- Création de la colonne "Code" -->
    		<th><h2>Marque</h2></th>				<!-- Création de la colonne "Marque"  -->
    		<th><h2>Modele</h2></th>				<!-- Création de la colonne "Modele"  -->
    		<th><h2>Cylindre</h2></th>				<!-- Création de la colonne "Cylindre"  -->
    		<th><h2>D&eacute;signation</h2></th>			<!-- Création de la colonne "Designation"  -->
    		<th><h2>Prix</h2></th>					<!-- Création de la colonne "Prix"  -->
     
    	</tr>
     
    	<?php 
    	foreach ($art as $article)
    	{
    	?>
    		<tr>
    			<!-- Remplissage des colonnes en fonction des données de la base de données -->
    			<td align="center"><img src="<?php echo $article->get_photo(); ?>" class="img"/></td>
    			<td align="center"><h2><?php echo $article->get_IdArt();?></h2></td>
    			<td align="center"><h2><?php echo $article->get_marque();?></h2></td>
    			<td align="center"><h2><?php echo $article->get_modele();?></h2></td>
    			<td align="center"><h2><?php echo $article->get_cylindre();?></h2></td>
    			<td align="center"><h2><?php echo $article->get_designation();?></h2></td>
    			<td align="center"><h2><?php echo $article->get_prixHT();?></h2></td>
    			<td align="center">
    				<!-- Permet l'action "ajout_panier" et le choix de la catégorie et de l'article puis affichage du bouton "ajout_panier" -->
    				<a href="Index.php?action=ajout_panier&choix=<?php echo $categorie->get_code()."/".$article->get_IdArt();?>&art=neuve ">
    					<img src="images_gabarit/ajout_panier2.gif"/>
    				</a>
    			</td>
    		</tr>
    	<?php
    	}
    	?>
    </table>
    <!--  Message de renseignements pour chaque visiteur du site -->
    <th align="center"><h4>Pour plus de renseignement appeler le : 02-00-00-00-02</h4></th>
    Pour finir voici le code de mon controle permettant l'ajout au panier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <?php
    	// list Permet de transformer une liste de variables en tableau 
    	// explode permet de couper une chaîne en segment par "/"
    	list($categorie,$article)=explode("/",$_GET['choix']);
     
    	if (isset($_SESSION['panier']))      // Si la variable de session existe, donc je peux l'afficher
    	{
    		if (stristr($_SESSION['panier'], $_GET['choix']) == False) //$art non trouvé dans la chaîne de caractères
    		{
    			if ($_SESSION['panier']=="")
    			{
    				$_SESSION['panier']=$_GET['choix'].",";
    			}
    			else
    			{
    				$_SESSION['panier'] =$_SESSION['panier'].$_GET['choix'].",";
    			}
    		}
    	}
    	else  // Si la variable de session n'existe pas
    	{
    		$_SESSION['panier']=$_GET['choix'].",";
    	}
     
    	$action = $_GET["art"];
     
    	if ($action=="neuve")
    	{
    	?>
    		<!--  javascript permettant l'action et le choix de la catégorie -->
    		<script language="JavaScript">
    			document.location.href='index.php?action=MotoNeuve';
    		</script>
    	<?php
    	}
    	else
    	{
    		?>
    		<!--  javascript permettant l'action et le choix de la catégorie -->
    		<script language="JavaScript">
    			document.location.href='index.php?action=MotoOccassion';
    		</script>
    		<?php
    	}
    	?>
    C'est dans cette fenêtre que mon problème est plus précisément, la variable $_SESION['panier'] n'existe pas donc il rentre directement dans le 'else' de mon premier si.
    D'après vous à quoi cela est du??
    Comment faire pour remplir ma variable $_SESSION['panier']??

    Merci d'avance!!

  2. #2
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Bonjour,

    As tu un session_start() ?

    Gillou

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à LeGilou
    Oui, j'utilise bien un session_start() quelque part dans mon code!!

    Pourquoi cette question?? Quel est ton idée??

    Cordialement

  4. #4
    Membre chevronné Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Par défaut
    Mon idée, c'était ça
    Sans session_start, la sesson ne se créé pas.

    Dans la page index.php (ton 3eme bout de code), peux tu mettre des echo "1", echo "2", ... dans les diférents IF, pour voir où le script passe.


    Gillou

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut réponse à LeGilou
    Dans la page index.php (ton 3eme bout de code), peux tu mettre des echo "1", echo "2", ... dans les diférents IF, pour voir où le script passe.
    Mon 3éme bout de code n'est pas index.php mais C_AjoutPanier.php

    Sinon, j'ai mit un echo dans le IF plus précisémen j'ai effectué cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    	if ($action=="neuve")
    	{
    		echo "1";
    	?>
    		<!--  javascript permettant l'action et le choix de la catégorie -->
    	<!--  	<script language="JavaScript">
    			document.location.href='index.php?action=MotoNeuve';
    		</script>
    		-->
    	<?php
    	}
    	else
    	{
    		?>
    		<!--  javascript permettant l'action et le choix de la catégorie -->
    	 	<script language="JavaScript">
    			document.location.href='index.php?action=MotoOccassion';
    		</script>
    		<?php
    	}
    Et cela m'affiche 1 et me retourne bien sur la page souhaité!!

    Cordialement!!

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Par défaut
    Merci à LeGilou de m'avoir éclairé sur le fait d'utiliser "session_start()", je l'ai inséré dans ma page nommé : "Index.php" qui est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php	
     
    	// La connexion à la base de données
    	require_once("Les_utilitaires/Connexion.php");
     
    	// La classe collection
    	require_once("Les_utilitaires/collection.php");
     
    	// Classes
    	require_once("Les_classes/class_article.php");
    	require_once("Les_classes/class_categorie.php");
    	require_once("Les_classes/class_client.php");
    	require_once("Les_classes/class_commande.php");
    	require_once("Les_classes/class_ligneCommande.php");
     
    	// DAO
    	require_once("Les_DAO/DAO_article.php");
    	require_once("Les_DAO/DAO_categorie.php");
    	require_once("Les_DAO/DAO_client.php");
    	require_once("Les_DAO/DAO_commande.php");
    	require_once("Les_DAO/DAO_ligneCommande.php");
     
    	session_start(); //Permet de créer une session 
     
    	// Le gabarit
    	require_once("Vues/V_index.php");
     
    	// La deconnexion à al base de données
    	require_once("Les_utilitaires/Deconnexion.php");
     
    ?>
    Par contre j'ai toujours un problème qui ne me permet pas d'ouvrir le panier.
    Pour mieux comprendre j'insère le code du contrôle 'Panier' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    	if (isset($_SESSION['panier']))
    	{	
    		if ($_SESSION['panier']!="")
    		{
    			// explode permet de couper en segment la chaine correspondant à la variable de session
    			$prod=explode(",",$_SESSION['panier']);
    			$LesArticles = new collection();	// Instance de la collection
     
    			// substr_count permet de compter le nombre d'occurrences de segments dans la variable de session
    			// Pour i=0 et inférieur à substr
    				for($i=0;$i<substr_count($_SESSION['panier'],',');$i++)
    				{
    					// list permet de transformer une liste de variables en tableau
    					// explode permet de couper une chaine en segments "/"
    					list($cat[$i],$art[$i])=explode("/",$prod[$i]);
     
    					$Lacategorie=DAO_Categorie::ChargerUneCategorie($cat[$i]);	//Appel de la fonction 'Charger_UneCategorie' via la variable "Lacategorie"
     
    					$Larticle=DAO_Article::ChargerUnArticle($Lacategorie); // Appel de la fonction 'Charger_larticle' via la variable "Larticle"
     
    					$LesArticles->add($Larticle);	// Permet d'ajouter les éléments correspondants à la variable "Larticle" dans la variable "LesArticles" via la méthode 'add' de la classe collection
    					$_SESSION["Commander"]=$LesArticles->getAll();	// Remplissage de la variable de session
    				}
     
    				require("Vues/V_panier.php");	// Require permet d'exécuter la vue suivante : "vue du panier
    		}
    		else
    		{
    			echo("<h1>votre panier est vide</h1>");
    		}
    	}
    	else
    	{
    		echo("<h1>votre panier est vide</h1>");
    	}
    ?>
    Lorsque je veux voir ce qu'il y a dans mon panier, voici le message d'erreur :
    Catchable fatal error: Object of class categorie could not be converted to string in C:\wamp\www\Moto_28(nouveau)\Les_DAO\DAO_article.php on line 52
    Pour avoir une meilleure vision de DAO_article.php la voici plus précisément la méthode qui est remise en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public static function ChargerUnArticle($leid)
    		{
     
    			$req="SELECT * FROM article WHERE A_ID=$leid";
    		//	echo $req;
     
    			$jeu=mysql_query($req);
    			$ligne=mysql_fetch_array($jeu);
     
    			$SaCategorie=DAO_Categorie::LoadOne($ligne["CODECAT"]);
    			$MonArticle=new article($SaCategorie, $ligne["A_ID"], $ligne["A_PRIXHT"], $ligne["A_Photos"], $ligne["A_MARQUE"], $ligne["A_MODELE"], $ligne["A_CYLINDRE"], $ligne["A_DESIGNATION"], $ligne["A_Type"]);
     
    			return $MonArticle;
    		}
    La ligne 52 est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req="SELECT * FROM article WHERE A_ID=$leid";
    Je vois pas du tout d'ou peux provenir l'erreur, quelqu'un a til une idée??

    Cordialement!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Ajouter mon panier sur la base
    Par namstou3 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/02/2010, 08h28
  2. Quantité incorrecte lors de l'ajout au panier
    Par hoangeric dans le forum Langage
    Réponses: 12
    Dernier message: 16/06/2009, 19h18
  3. [MySQL] Requete de style "Ajouter au panier"
    Par asvin dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/12/2008, 16h25
  4. Réponses: 1
    Dernier message: 08/06/2008, 14h55
  5. Problème d'ajout au panier sous PHP
    Par loic20h28 dans le forum Langage
    Réponses: 1
    Dernier message: 01/12/2007, 18h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo