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 tableau array avec la fonction array_push()


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Par défaut probleme de tableau array avec la fonction array_push()
    Bonjour

    J'ai trois lignes dans une base de donnée

    Actuellement j'utilise cette méthode pour mettre les données dans un tableau array()


    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
     
    $sql=mysql_query("SELECT a,b,c,d,e FROM test");
    $z=0;
    $va=array();
    while($rs=mysql_fetch_object($sql)){
    			$va[$z][0]=$rs->a;
    			$va[$z][1]=$rs->b;
    			$va[$z][2]=$rs->c;
    			$va[$z][3]=$rs->d;
    			$va[$z][4]=$rs->e;
    			$z++;
                                       }
    print_r($va);
     
    // affichage
     
    //Array ( [0] => Array ( [0] => 1 [1] => 1 [2] =>2 [3] => Vente [4] => 0 ) 
    //        [1] => Array ( [0] => 1 [1] => 1 [2] =>2 [3] => Location [4] => 0 )
    //        [2] => Array ( [0] => 1 [1] => 1 [2] =>2 [3] => Achat [4] => 0 )
    Mon problème est que je n'arrive pas faire la même chose avec la fonction array_push()

    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
     
    $sql=mysql_query("SELECT * FROM test");
    $vil=array();
    $z=0;
    while($rs= mysql_fetch_object ($sql)) {
    array_push($vil,$vil[$z][0]=$rs->a,$vil[$z][1]=$rs->b,$vil[$z][2]=$rs->c,$vil[$z][3]=$rs->d,$vil[$z][4]=$rs->e);
                                      $z++;
                                          }
    print_r($vil);
     
    //Affichage
     
    //Array ( [0] => Array ( [0] => 1 [1] =>1 [2] =>2 [3] =>Vente [4] => 0 ) 
    //        [1] => 1���0 
    //        [2] => Array ( [0] => 1 [1] =>1 [2] =>2 [3] =>Achat [4] => 0 )
    Donc je n'arrive pas à obtenir le même tableau.

    Que faut-il faire pour corriger cela.

  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
    Je ferrais plutot ça en laissant tomber le $z :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($rs= mysql_fetch_object ($sql)) {
    $vil[] = array($rs->a,$rs->b,$rs->c,$rs->d,$rs->e);
    }
    print_r($vil);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé Avatar de bigltnt
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 227
    Par défaut
    La fonction array_push() prend des tableaux en paramètres. Pour commencer, il n'est pas permit de faire une assignation dans le passage des paramètres:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_push( $vil, $vil[$z][0]=$rs->a, [...] )
    Vu ce que j'ai l'impression que tu essayes de faire, je pense que simplement ceci devrait suffir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    	$sql = mysql_query( "SELECT * FROM test" );
    	$vil = array();
    	while( $rs = mysql_fetch_array( $sql ) ) {
    		$vil[] = $rs;
    	}
    	print_r($vil);
    ?>
    Je vois pas pourquoi tu tiens à utiliser la fonction array_push() qui ne me parait pas bien utile pour ton cas.

    Cordialement

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Par défaut rep
    Merci cela fonctionne, j'avais vu trop compliqué.

    A par contre est-il possible de commencer l'ajout de lignes à partir d'une numérotation voulu ?

    Actuellement dans le tableau array() ci-dessus c'est :
    // [0]=>1 , [1]=>2 ...
    Peut-on commencer par un chiffre voulu ?
    // [10]=> , [11]=>2 ...

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    625
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 625
    Par défaut
    Dans ce cas il faut récupérer le $z :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = mysql_query( "SELECT * FROM test" );
    	$vil = array();
            $z=10
    	while( $rs = mysql_fetch_array( $sql ) ) {
    		$vil[ $z++ ] = $rs; //dans le cas présent, le $z est affecté puis incrémenté
    	}
    	print_r($vil);

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    329
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 329
    Par défaut
    cool c'est bien pour les lignes. je ne le savais pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $sql = mysql_query( "SELECT * FROM test" );
    	$vil = array();
            $z=10;
    	while( $rs = mysql_fetch_array( $sql ) ) {
    		$vil[ $z++ ] = $rs; //dans le cas présent, le $z est affecté puis incrémenté
    	}
    	print_r($vil);
    Mais ma demande était pour introduire le paramètre dans chaque valeur introduite dans le tableau

    exemple
    // $y=139
    // $z=10

    //ligne 10 ---> [139] =valeur a, [140]= valeur b .....$y++

    j'arrive pas à mettre le y++ dans

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $vil[ $z++ ] = $rs
    // j'essayé $vil[ $z++ ] = $rs[$y++] . cela ne fonctionne pas
    en fait c'est pour réaliser un tableau comme cela

    Array ( [10] => Array ( [139] => 1 [140] => [141] =>1 [142] => 2 [143] => Vente.)
    [11] => Array ( [139] => 1 [140] => [141] =>1 [142] => 2 [143] => Location.)
    [12] => Array ( [139] => 1 [140] => [141] =>1 [142] => 2 [143] => Achat. )

    Si c'est possible ?

  7. #7
    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
    Pas très élégant mais bon :
    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
    $sql = mysql_query( "SELECT * FROM test" );
    	$vil = array();
            $z=10;
            $y = 139;
    	while( $rs = mysql_fetch_array( $sql ) ) {
    		$vil[$z] = array(
            $y=>$rs->a,
            $y+1$rs->b,
            $y+2=>$rs->c,
            $y+3=>$rs->d,
            $y+4=>$rs->e);
     
    $z++;
    	}
    	print_r($vil);
    ou avec deux boucles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $sql = mysql_query( "SELECT * FROM test" );
    	$vil = array();
            $z=10;
     
    	while( $rs = mysql_fetch_array( $sql ) ) {
               $y = 139;
               foreach ($rs as $value) {
                    $vil[$z][$y] = $value;
                    $y++;
               }
             $z++;
    	}
    	print_r($vil);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/05/2013, 16h22
  2. [XL-2010] Comment prendre en compte un tableau (Array) dans une fonction vba?
    Par statista dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/04/2011, 15h16
  3. Réponses: 6
    Dernier message: 09/03/2011, 11h43
  4. [JavaScript] [SRC] array_map() modification de tous les elements d'un array avec une fonction
    Par SpaceFrog dans le forum Contribuez
    Réponses: 0
    Dernier message: 08/07/2009, 13h28
  5. [PHP 4] session et tableau array avec 4 colonnes
    Par sooprano dans le forum Langage
    Réponses: 1
    Dernier message: 30/06/2009, 13h38

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