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 :

comment modifier a l'intérieur d'une session [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
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut comment modifier a l'intérieur d'une session
    Bonjour ,
    j'ai crée un session qui est un panier voici sa structure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['panier']['nom_article']['quantite']
    j'affiche le résultat en faisant:
    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
     
    <table>
    <tr>
    <td>article</td><td>quantite</td
    </tr>
    <?php
    for ($i=0;$i<$nb_panier; $i++)
    {
    	echo '<tr>';
    	echo '<td>'.$_SESSION['panier'][$i][1].'</td>';
    	echo '<td>'.$_SESSION['panier'][$i][2].'</td>';
    	echo '<td></td>';
     
    	echo '</tr>';
    }
    ?>
    comment s'y prend ton pour modifier juste la quantite à l'intérieur de cette session (qui correspond
    [1] et [2] ?

    merci de la réponses

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ce que tu nous décris ne colle pas :
    Si ton tableau est comme ca $_SESSION['panier']['nom_article']['quantite'], ca donne $_SESSION['panier'][$i]['quantite'] = xxx

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    foreach($_SESSION['panier'] as $article => $detail)
    {
     
    // exemple je passe la quantité de tous les articles à 6:
    $_SESSION['panier'][$article]['quantite'] = 6;
     
    	echo '<tr>';
    	echo '<td>'.$article.'</td>';
    	echo '<td>'.$detail['quantite'].'</td>';
    	echo '<td></td>';
    	echo '</tr>';
    }
    ?>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ta réponse sabotage
    je me suis trompé dans la dénomination des indexs j'ai crée un script de test donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $_SESSION['panier']=c'est la session panier;
    $_SESSION['panier'][]=c'est l'index de la ligne de commande.
    $_SESSION['panier'][][]=sa sera l'id article
    $_SESSION['panier'][][][]=sa sera la designation de l'article.
    $_SESSION['panier'][][][][]=sa sera la quantite de l'article.
    donc voici ce que je shouaite avoir:
    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
     
    id_article 1=abricot  
    id_article 22=peche 
    id_article 75=cerise 
    Array
    (
        [0] => Array  //on a fait une permière ligne de commande
            (
                [0] => 1  
                [1] => abricot
                [2] => 10 //je commande 10 abricot
            )
     
        [1] => Array
            (
                [0] => 22
                [1] => peche
                [2] => 25  //je commande 25 abricot
            )
     
        [2] => Array
            (
                [0] => 75
                [1] => cerise
                [2] => 30 //je commande 30 cerise
            )
     
    )
    voici le script
    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
     
    <?php
    session_start();
    if(!isset($_SESSION['panier']))
    {
    	$_SESSION['panier'][0]=array($id',$designation,$quantite);
    	echo "<h1>creation du panier</h1>";
    
    }
    else
    {
    	echo "<h1>creation d'une autre ligne</h1>";
    	$new=count($_SESSION['panier']);
    	$_SESSION['panier'][$new]=array($id',$designation,$quantite);
    	
    }
    
    echo '<pre>';
    print_r($_SESSION['panier']);
    echo '<pre>';
    //unset($_SESSION['panier']);
    ?>
    avec cette session il faura alors modifier l'une des ces quantité

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il est beaucoup plus lisible d'utiliser des index littéraux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Array
    (
        [0] => Array  //on a fait une permière ligne de commande
            (
                ['id'] => 1  
                ['designation'] => abricot
                ['quantite'] => 10 //je commande 10 abricot
            )
    Sinon je ne vois pas trop ta difficulté pour modifier tes quantités :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    // avec ton index
    $_SESSION['panier'][$id_panier][2] = 12;
    // avec un index litteral
    $_SESSION['panier'][$id_panier]['quantite'] = 12;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    j'ai adopter ta solution littéral par contre je n'arrive pas à afficher la designation par exemple;

    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
     
    <?php
    session_start();
    if(!isset($_SESSION['panier']))
    {
    	$_SESSION['panier'][0]=array(
    	'designation'=>'peche','id_article'=>'1','quantie'=>'3');
    	echo "<h1>creation du panier</h1>";
     
    }
    else
    {
    	echo "<h1>creation d'une autre ligne</h1>";
    	$new=count($_SESSION['panier']);
    	$_SESSION['panier'][$new]=array(
    	'designation'=>'peche','id_article'=>'1','quantie'=>'3');
     
    }
     
    echo '<pre>';
    print_r($_SESSION['panier']);
    echo '<pre>';
    //unset($_SESSION['panier']);
    $nb=count($_SESSION['panier']);
    echo "<h1>il a dans la panier</h1>".$nb;
    ?>
    <br/>
    <table>
    <tr>
    <td>numero</td><td>desingnation</td><td>quantite</td>
    </tr>
    <?php
     
    for($i=0; $i<$nb; $i++)
    {
    	echo '<tr>';
    	echo '<td>'.$i.'</td>';
    	echo '<td>'.$_SESSION['panier'][$i]['designation'].'</td>';
    	echo '</tr>';
    }
     
    ?>
    </table>
    ma creation de du panier à l'air d'être correcte:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        [0] => Array
            (
                [designation] => peche
                [id_article] => 1
                [quantie] => 3
            )
     
        [1] => Array
            (
                [nom] => peche
                [id_article] => 1
                [quantie] => 3
            )

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton code fonctionne pourtant, pense a effacer ton ancienne session dans tes tests.

    Par contre :

    - utilise la syntaxe [] pour ajouter des entrées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<h1>creation d'une autre ligne</h1>";
    	$_SESSION['panier'][]=array(
    	'designation'=>'peche','id_article'=>'1','quantite'=>'3');
    - utilise foreach pour parcourir tes tableaux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    foreach($_SESSION['panier'] as $i => $detail) 
    {
    	echo '<tr>';
    	echo '<td>'.$i.'</td>';
    	echo '<td>'.$detail['designation'].'</td>';
    echo '<td>'.$detail['quantite'].'</td>';
    	echo '</tr>';
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ce script, c'est que qu'il faut.
    quelle fonction je dois utiliser pour rechercher si un article a déjà été enregistrer dans la session?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $new_id=1;
    if(isset($_SESSION['panier']['id_article']=$new_id))
    {
    echo "cette article est déjà enregistrer;//on enregistre pas un nouveau article"
    }
    else
    {
    echo "<h1>creation d'une autre ligne</h1>";
    	$_SESSION['panier'][]=array(
    	'designation'=>'peche','id_article'=>'1','quantite'=>'3');
    }

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

Discussions similaires

  1. [ZF 1.11] comment modifier à l'intérieur d'une session ?
    Par keokaz dans le forum Autres composants
    Réponses: 14
    Dernier message: 13/09/2011, 22h19
  2. comment modifier la taille maximale d'une table
    Par mysqldotnet dans le forum Administration
    Réponses: 0
    Dernier message: 14/04/2008, 17h38
  3. Réponses: 0
    Dernier message: 31/08/2007, 18h29
  4. Réponses: 5
    Dernier message: 17/07/2006, 11h18

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