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 :

Récupérer valeurs de tableau dynamique


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Récupérer valeurs de tableau dynamique
    Tout d'abord, bonjour à tous.

    Mon problème est le suivant:

    Je fais une requete, je cherche à stocker tous les résultats de ma requête dans un tableau dynamique à une dimension.
    Voici mon 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
     
     
    $reqd = "SELECT * FROM client";
    $export = mysql_query($reqd) or die("execution de la requete impossible");
    $count1 = mysql_num_rows($export);
    $tab = array();
    $u=0;
    $nb_c = mysql_num_fields($export);
     
    $requete=mysql_query($reqd) or die("execution de la requete impossible");
     
    while($r=mysql_fetch_array($requete)) // Je passe ligne par ligne
    {
    	for($j=0;$j<$nb_c;$j++)  // pour bien choper les resultats de chaque colonnes
    	{
    			$tab[$u]=$r[$j];
    			$u=$u++;
    	}
    	print "<br>";
    }
    Le problème est que si je pose un "print "$tab[$u]" dans ma boucle "for", à l'affichage je me retrouve bien avec les resultats de ma requete ligne par ligne et colonne par colonne.
    Mais si je met ce même "print" hors de la boucle "for", alors la le tableau $tab est vide.
    Résultat je peux pas appeler plus loins les valeurs que je voulais stocker.

    Voila, ma bete noire est entre vos mains délicates, j'espere qu'ensemble on arrivera à la dompter.
    Merci par avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    Pourquoi tu lance 2 fois la meme requete?? $export et $requete contiendront les memes valeurs !

    Sinon ton problème vient du fait quand quand la boucle for est terminé, il ya $u entrée dans ton tableau, mais vu que ça commencer par 0, les index ne vont que de 0 à $u-1 !

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bonjour

    Pour ajouter un élément à un tableau tu peux simplement faire $tab[]=$var ou utiliser array_push.
    ça fonctionnerait peut-être mieux...

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par coolmic Voir le message
    Pourquoi tu lance 2 fois la meme requete??
    Je demande deux fois la même requête car si je réutilise le même alias mon mysql_fetch_row m'envoit pétre.

    Bon j'ai réussi à résoudre mon problème en sortant le "$u" de la boucle "for".
    Je ne pensais pas que le fait de le mettre dedans me poserait tant de problèmes.
    Voici le code "solution", pas du grand art, mais fait ce qu'on lui demande.
    En tout cas merci à vous deux pour l'aide apportée.
    Juste une petite chose, je n'ai pas bien compris comment je pouvais appliquer la solutions du "$tab[]=$var" à mon code comme tu me l'as suggéré Célira

    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
    <?
    include("connexion.php");
    $reqd = "SELECT * FROM client";
    $export = mysql_query($reqd) or die("execution de la requete impossible");
    $count1 = mysql_num_rows($export);
    $nb_c = mysql_num_fields($export);
     
     
    $requete=mysql_query($reqd) or die("execution de la requete impossible");
    $u=0;
    while($r=mysql_fetch_row($requete))
    {
    	for($j=0;$j<$nb_c;$j++)
    	{
    	      $v=$u*$nb_c;
    	      $t=$j+$v;
    	      $tab[$t]=$r[$j];
     
    	}
    	$u = $u+1;
    	print "<br>";
    }
     
    for ($i=0; $i<$nb_c*$count1; $i++)
    {
    	print "$tab[$i]\n";
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 30
    Points : 34
    Points
    34
    Par défaut
    Ah ok tu utilise export dans un mysql_fetch_row , dans ce cas tu utilises mysql_data_seek !!

    Bon voici le code a utiliser :

    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
     
    $reqd = "SELECT * FROM client"; // Requete à executer
    $requete = mysql_query($reqd) or die("execution de la requete impossible"); // On l'éxécute et on récupère les résultats dans $requete
    $count1 = mysql_num_rows($requete); // Nombre d'enregistrement
    $nb_c = mysql_num_fields($requete); // Nombre de colonne
    $tab = array(); // Tableau
     
    while($r=mysql_fetch_row($requete)) // On parcourt les résultats de la requête
    {
    	for($j=0;$j<$nb_c;$j++) // Je parcours les champs de chaque résultats
    	{
    	      $tab[]=$r[$j]; // J'ajoute la valeur du champ dans $tab
    	}
    	print "<br>";
    }
     
    mysql_data_seek($requete , 0); // On remet le pointer à 0 , come ca tu pourra le réutiliser
     
    foreach($tab as $val) // On parcourt entièrement le tableau sans se soucier de connaitre la taille
    {
    	print "$val\n";
    }

Discussions similaires

  1. Coloration des valeurs dans Tableau dynamique
    Par maximilien59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/12/2011, 14h40
  2. Réponses: 2
    Dernier message: 11/01/2010, 12h39
  3. [Toutes versions] récupérer valeur dans tableau
    Par ismak dans le forum Excel
    Réponses: 1
    Dernier message: 17/06/2009, 08h36
  4. Récupérer valeur d’un tableau
    Par sosophie dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/04/2007, 11h35
  5. Récupérer valeur contrôle en dynamique via requête
    Par nicburger dans le forum Access
    Réponses: 10
    Dernier message: 15/09/2005, 15h41

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