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

Langage PHP Discussion :

Probleme de suppression dans un tableau


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut Probleme de suppression dans un tableau
    Bonjour, Bonsoir,

    Actuellement en stage, je viens quérir votre aide !

    Nous travaillons a deux sur la suppression d'une ligne d'un tableau de session, appelé $_SESSION[tabIdOeu] et nous ne reussissons pas a supprimer une ligne, voici le code que nous avons :

    (nous avons essayé avec unset() et avec pop_array())

    Code du 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
     
    <?php
    		//=========================CONTENU DE PANIER ==============================================
    		//Affichage du contenu via le parcours du tableaux de session
    		//et calcul du total 
    		$total = 0;
    		echo"<tbody>";
     
    		//boucle de parcours
    		for ($i=0;$i<count($_SESSION["tabIdOeu"]);$i++)
    		{
    			$idoeuvre=$_SESSION["tabIdOeu"][$i];
     
    			//requête sql pour récupéer la nom, le prix et la photo
    			$sql=mysql_query("SELECT * FROM oeuvre WHERE id_oeuvre=$idoeuvre ");
    			$row=  mysql_fetch_array($sql);
     
    			$nom=$row['nom_oeuvre'];
     
    			$prix=$row['prix_oeuvre'];
    			$photo="ImagesOeuvres/".$row['img_oeuvre'];
                            $total=$total+$prix;
     
                    echo" 
    			<TR border='1'>
    				
    				<Td><a href='supprimerOeuvrePanier.php?id=$idoeuvre'>Supprimer</a></Td><Td><IMG SRC='$photo'</Td><Td>$nom</Td><Td>$prix</Td>
                        ";
                    ?>
    Code de la suppression

    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
     
    <?php
        // repérage de la position où supprimer dans le panier 
        $idO=$_GET["id"];
        //echo"$idO";
     
     
     
        $array=$_SESSION["tabIdOeu"];
     
     
     
        for ($i=0;$i<count($_SESSION["tabIdOeu"]);$i++)
        {
         unset($_SESSION["tabIdOeu"]["$idO"]);   
         $array = array_values($array);
        }
     
     
       echo"<a href='monPanier.php'>retour au panier</a> "; 
     ?>


    Merci de l'aide que vous pourrez nous apporter,

    Cordialement Deimes & Dart.

  2. #2
    Membre averti Avatar de camyo
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juin 2004
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Juin 2004
    Messages : 400
    Points : 386
    Points
    386
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $tableau = array('art1','art2','art3');
       $element = 'art2';
       unset($tableau[array_search($element, $tableau)]);
    Sauf erreur, c'est comme ça
    Quand une réponse vous aide
    Et quand ça marche

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION["tabIdOeu"]["$idO"]);

    Ce n'est pas la clé "$idO" que tu veux supprimer mais la clé correspondant à la valeur de $idO...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Invité
    Invité(e)
    Par défaut
    Justement j'utilise cette syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION[nomTableau][indexChoisi]);

    est elle correcte ?
    Dernière modification par Bovino ; 13/02/2013 à 07h45. Motif: Merci d'utiliser les balises [code] (bouton '#') de l'éditeur !!!

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 34
    Points : 46
    Points
    46
    Par défaut
    Certes ta syntaxe est correcte mais comme le souligne Bovino plus haut, tu indiques en guise d'indexChoisi une chaîne de caractère valant "$idO" et non la valeur de $idO (ce que tu cherches). Je doute que la clé "$idO" existe dans le tableau, d'où le dysfonctionnement de ton code.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Merci cr3a_halo, maintenant ca marche, je n'avais pas compris le message de Bovino !

    EDIT : Le problême etant que la ligne du tableau est bien supprimée, mais nous n'arrivons pas a la ré-indexer pour que le panier s'affiche correctement apres un retour sur celui ci.


    Voici notre boucle de parcours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for($i=count($_SESSION["tabIdOeu"]);$i>$cle_panier;$i--)
        {
            $array[$i-1]=$array[$i];
     
     
        }

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour réindexer un tableau c'est array_values()

  8. #8
    Invité
    Invité(e)
    Par défaut
    J'ai essayé, j'ai toujours cette erreur lorsque je reviens sur l'affichage de mon panier,
    Notice: Undefined offset: 0 in C:\wamp\www\arto.artsetcouleurs.fr\monPanier.php on line 39
    .
    Hors la ligne 39 de mon code MonPanier.php est celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $idoeuvre=$_SESSION["tabIdOeu"][$i];
    la boucle commencant a 0, le tableau n'est donc pas ré-indexé :/

    Le code de mon traitement de suppression est le suivant :

    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
    $idO=$_GET["id"];
     
    $array=$_SESSION["tabIdOeu"];
        $cle_panier = array_search($idO, $_SESSION["tabIdOeu"]);
        if(isset($_SESSION["tabIdOeu"][$cle_panier]))
        unset($_SESSION["tabIdOeu"][$cle_panier]);
     
     
     
        /* for($i=count($_SESSION["tabIdOeu"]);$i>$cle_panier;$i--)
        {
            $array[$i-1]=array_values($array[$i]);
            
            
        }
        */
     $array = array_values($array);
    Dernière modification par Bovino ; 15/02/2013 à 11h44. Motif: Balise [quote] pour les messages d'erreur

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    A la fin de ton traitement est ce que tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION["tabIdOeu"] = $array; // le tableau réindexé

  10. #10
    Invité
    Invité(e)
    Par défaut
    Merci, ca marche enfinnnnn !!!

    Gros merci a vous tous, le stage se termine ce soir, et nous avions peur de ne pas pouvoir finir !

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

Discussions similaires

  1. probleme d'insertion dans un tableau (WMI)
    Par sono77 dans le forum VBScript
    Réponses: 5
    Dernier message: 22/04/2008, 18h09
  2. Probleme de suppression dans un vbalcolumntreeview
    Par Drik'C dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 22/08/2007, 11h29
  3. probleme de blanc dans un tableau avec les positionnements en css
    Par rich25200 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 06/02/2007, 23h50
  4. [Tableaux] Problème de lignes dans un tableau
    Par Perymanu dans le forum Langage
    Réponses: 10
    Dernier message: 18/12/2006, 20h31
  5. Réponses: 3
    Dernier message: 06/10/2006, 15h46

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