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 :

[Tableaux] unset(monTableau[0]) = BUG!


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut [Tableaux] unset(monTableau[0]) = BUG!
    Bonjour,

    J'ai la fonction suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    /**
       * Supprime enregistrement dans la table virtuelle
       * Paramètres : integer $id (identificateur de la ligne à supprimer)
       **/
      function sv_supprimer($id) { unset($this->volet[$id]); }
    Lorsque la valeur de $id n'est pas zéro, tout fonctionne. Sinon, mon tableau $this->volet se retrouve détruit. J'en conclut que peut-être unset n'est pas la fonction appropriée. Qu'est-ce que vous en pensez?

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Perso, j'ai déjà utilisé unset sur un tableau, y comprit pour l'indice 0 et je n'ai jamais eu de problème... il faudrait savoir quand le bug se produit exactement
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    Voici quelques parties de ma classe pui pourraient p-e avoir de l'importance pour t'aider à cerner le problème :

    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
     
    class FormationProfil {
     
       private $formation = array();
      /**
       * Charge les informations de la base de données dans la table virtuelle
       * Paramètres : integer $s (numéro du stagiaire)
       **/    
      function __construct($s = "NOTHING") {
       $query = "SELECT noNiveau, noDiscipline, commentaire FROM formationProfil WHERE noStagiaire = \"".$s."\"";
       if($result = mysql_query($query)) {
         while($line = mysql_fetch_row($result)) {
          $this->fp_ajouter($line[0], $line[1], $line[2]);
        }
       }
      }
    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
     
      /**
       * Ajoute un nouvel enregistrement dans la table virtuelle
       * Paramètres : integer $n (numéro du niveau d'étude)
       *       integer $d (numéro de la discipline)
       *              string  $c (commentaire)
       **/
      function fp_ajouter($n, $d, $c = "") {
     
       //... 
     
        $input = array($n, $d, $c);
        array_push($this->formation, $input);
       return true;
      }
    Lorsque ma fonction supprimée est appelée, elle envoie toujours un entier. Si l'entier est différent de 0, la fonction fonctionne correctement. Sinon, l'objet n'est plus utilisable et il faut le recréer.

  4. #4
    Membre Expert
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Par défaut
    quel rapport existe t'il entre la fonction sv_supprimer et fp_ajouter ?

    Ceci n'est vraiment pas très jolie, et même plustot risquer :
    $query = "SELECT noNiveau, noDiscipline, commentaire FROM formationProfil WHERE noStagiaire = \"".$s."\"";

  5. #5
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    L'objet n'est géré que par le code et aucune entrée directe de l'utilisateur ne survient.

    Pour ce qui est du lien entre ajouter et supprimer, la fonction d'ajout peut aider à comprendre comment fonctionne mon objet et pourrais aider quelqu'un.

    Et... pourquoi pas plutôt se pencher sur le problème qui m'intéresse?

  6. #6
    Membre éclairé Avatar de FrankOVD
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Juin 2005
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juin 2005
    Messages : 438
    Par défaut
    Contournons le problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function fp_supprimer($id) {
      if($id == 0) array_shift($this->volet);
      else unset($this->volet[$id]);
    }
    Merci pareil!

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

Discussions similaires

  1. [2.2.2][crosstab] Tableaux croisés et librairie - bug ?
    Par erwan.bodere dans le forum BIRT
    Réponses: 0
    Dernier message: 27/08/2008, 10h33
  2. [Tableaux] Bug dans array_unique, ou éléphant ?
    Par Herode dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2006, 10h24
  3. [Tableaux] Bug dans un code perso
    Par tom06440 dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2006, 12h38
  4. [Tableaux] Problème avec unset
    Par bernard-jacot dans le forum Langage
    Réponses: 4
    Dernier message: 14/02/2006, 12h59
  5. Bug boucles et tableaux
    Par sebduth dans le forum Fortran
    Réponses: 3
    Dernier message: 31/05/2005, 13h49

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