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] liste dont le nombre de paramètres varie


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Points : 98
    Points
    98
    Par défaut [Tableaux] liste dont le nombre de paramètres varie
    Bonjour à tous,
    débutant en php et n'ayant pas toujours les droits permettant d'accéder aux bases de données des sites sur lesquels je travaille, j'essaie de faire un script me permettant récupérer les informations dont j'ai besoin à l'aide d'une page test.php dont voici le code :

    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
    <?php
    include("class/init.php");
     
    //déclaration de variables
    $dbname = "espace_clients";
     
    $matable = 'commission_shop';
     
     
    echo "<u>Liste des ".$nomChamp." de la table <b>".$matable."</b> : </u><br /><br />";
    $result = $connexion->Request("Select * FROM ".$matable);
    if (!$result) {
       echo 'Impossible d\'exécuter la requête : ' . mysql_error();
       exit;
    }
    if (mysql_num_rows($result) > 0) {
       	while ($row = mysql_fetch_assoc($result)) {
    		$test = serialize($row);
    		$listtest = "";
    		for($i=1;$i<=3;$i++){
    			if($i==3){
    				$listtest .= "\$null, \$champ".$i.", \$null, \$valeur".$i;
    			}else{
    				$listtest .= "\$null, \$champ".$i.", \$null, \$valeur".$i.", ";
    			}
    		}
    		echo "listtest : ".$listtest."<br />test :".$test."<br />";
    		list($listtest) = split("\"",$test);
    		echo $champ1." = ".$valeur1." ; ".$champ2." = ".$valeur2." ; ";
    		echo "<br /><br />";
       	}
    }
     
    ?>
    et un exemple de resultat :

    Liste des id_shop de la table commission_shop :

    listtest : $null, $champ1, $null, $valeur1, $null, $champ2, $null, $valeur2, $null, $champ3, $null, $valeur3
    test :a:4:{s:2:"id";s:1:"1";s:9:"CA_limite";s:4:"7000";s:11:"pourcentage";s:1:"8";s:7:"id_shop";s:1:"1";}
    = ; = ;

    J'aimerais pouvoir récupérer les trois premiers champs de la base en question et afficher leur valeur. J'utilise donc la fonction split pour récupéré juste ce que j'ai besoin dans test. Le problème est que je ne sais pas comment faire pour :

    s'il y a 2 champs, faire en sorte que la fonction split soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($null, $champ1, $null, $valeur1, $null, $champ2, $null, $valeur2) = split("\"",$test);
    s'il y en a 3 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($null, $champ1, $null, $valeur1, $null, $champ2, $null, $valeur2, $null, $champ3, $null, $valeur3) = split("\"",$test);
    Si quelqu'un peut m'aider

    Merci d'avance.

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Points : 624
    Points
    624
    Par défaut
    En gros, tu veux passer un nombre de parametre aléatoire à la fonction list...
    J'avais deja posté un truc du genre ici, mais on m'avais confirmé que ce n'était pas possible (ou du moins personne ne savait faire).

    Je te suggère donc d'utiliser la méthode foreach pour lire chaque element de ton tableau et les attribuer à des variables.

    Pour foreach, utilise la forme foreach($mon_tableau as $key => $val) qui te permettront de récupérer à la fois la clé du tableau et sa valeur.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2007
    Messages
    195
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 195
    Points : 98
    Points
    98
    Par défaut
    Merci de ta réponse, ca marche bien. Je pensais que l'autre solution que j'envisageais au début était possible.

    A+

  4. #4
    Membre actif
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par jonnyboy Voir le message
    Merci de ta réponse, ca marche bien. Je pensais que l'autre solution que j'envisageais au début était possible.

    A+
    Il suffit de compter le nombre de séparateur pour savoir qu'elle liste appliquer.

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

Discussions similaires

  1. [Tableaux] nombre de paramètres non définissable
    Par Guillomme dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2007, 12h49
  2. Cocher au moins une checkbox dont son nombre varie
    Par Seb981 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/08/2007, 16h02
  3. Réponses: 29
    Dernier message: 29/03/2007, 12h50
  4. [Tableaux] Choisir le nombre de paramètres
    Par MYster dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2005, 21h27

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