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 :

afficher un tableau dynamique numérique


Sujet :

Langage PHP

  1. #1
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut afficher un tableau dynamique numérique
    bonjour,

    j'ai modifié dernièrement un tableau associatif pour un tableau numerique qui provient d'un SELECT mysql.

    bon, je me rends compte qque c,est un peu différent.
    le probleme, c'est que quand je veux l,afficher dynamiquement avec des echos

    il Ya qu'un seul enregistrement qui s'affiche mais plusieurs fois.

    je n'avais pas ce probleme avec un tableau associatif

    voici comment j'ai structurer mon tableau

    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
    <?php
    while($info = mysql_fetch_array($data, MYSQL_NUM)) {
     
    		$tableau_res = array("id", "time_depart", "date_fr", "voiturier_id","voiture_id", "places_disponibles",
    			"province_depart", "ville_depart", "point_depart", "province_destination", "ville_destination",
    			"point_destination", "prix");
    			//echo $info[6];
    			 $idTrajet= $info[0],
    			 $time_depart = $info[1],
    			 $date_fr = $info[2],
    			 $voiturierID= $info[3],
    			 $voitureID = $info[4],
    			 $places_dispo = $info[5],
    			 $province_depart= $info[6],
    			 $ville_depart= $info[7],
    			 $point_depart = $info[8],
    			 $province_destination = $info[9],
    			 $ville_destination = $info[10],
    			 $point_destination = $info[11],
    			 $prix = $info[12];
    		}
     
      }
    ?>
    et voici quand j'affiche le tableau

    j'ai du déclarer des variables pour chacun des $infos numerotes car il ne voulaient pas s'afficher dans la table et du meme coup, ca a changé la variable $info dans le foreach mais je n'ai aucune idée comment restructurer le foreach

    auriez-vous une meilleure idee?
    merci a l'avance


    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
    <?php
    if (!empty($tableau_res)) {
    	 foreach($tableau_res as $info){
    	  //while($info = mysql_fetch_array($data, MYSQL_NUM)) {
     
     
    		echo"<tr class='tr'><td align='center'> <a href='../transactions/Transaction_Depart.php?idTrajet=".$idTrajet."'>Choisir</a> </td>";
            echo'<td><strong>'.$date_fr.'</strong><br />'.$time_depart.'</td>';
            echo'<td><strong>'.$ville_depart.'</strong>  ('.$province_depart.')<br />'.$point_depart.'</td>';
            echo'<td><strong>'.$ville_destination.'</strong>  ('.$province_destination.')<br />'.$point_destination.'</td>';
            echo'<td><strong>'.$places_dispo.'</strong></td>';
            echo'<td>'.$prix.'</strong>$cad</td>';
            '<td>&nbsp;</td>';
          '</tr>';
       }
      }
     
    	?>

  2. #2
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Bonjour, si j'ai bien compris ton raisonnement tu dois modifier ton foreach comme ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    foreach($tableau_res as $info=>$nums)
        foreach($nums as $num)
            echo $nums[$num];

    PS: ton tableau $tableau_res est écrasé par des valeurs fixes à chaque enregistrement, bizarre...

  3. #3
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    f
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    oreach($tableau_res as $info=>$nums)
        foreach($nums as $num)
            echo $nums[$num];
    je comprends pas bien ici ce que tu me propose,
    comment je fais pour afficher mes differents champs?

    Madfrix PS: ton tableau $tableau_res est écrasé par des valeurs fixes à chaque enregistrement, bizarre...
    c'est plutot qu'il affiche le premier enregistrement et seulement celui-ci et plusieurs fois

  4. #4
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Salut,

    J'éspère ne pas être "à côté de la plaque"

    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
    while($info = mysql_fetch_array($data, MYSQL_NUM)) {			
    		$tableau_res[] = array(
    			"id"=>$info[0],
    			"time_depart"=>$info[1],
    			"date_fr"=>$info[2],
    			"voiturier_id"=>$info[3],
    			"voiture_id"=>$info[4],
    			"places_disponibles"=>$info[5],
    			"province_depart"=>$info[6],
    			"ville_depart"=>$info[7],
    			"point_depart"=>$info[8],
    			"province_destination"=>$info[9],
    			"ville_destination"=>$info[10],
    			"point_destination"=>$info[11],
    			"prix"=>$info[12]
    		);
    }
     
    if (!empty($tableau_res)) {
    	foreach($tableau_res as $info){
    		echo"<tr class='tr'><td align='center'> <a href='../transactions/Transaction_Depart.php?idTrajet=".$info['id']."'>Choisir</a> </td>";
    		echo'<td><strong>'.$info['date_fr'].'</strong><br />'.$info['time_depart'].'</td>';
    		echo'<td><strong>'.$info['ville_depart'].'</strong>**('.$info['province_depart'].')<br />'.$info['point_depart'].'</td>';
    		echo'<td><strong>'.$info['ville_destination'].'</strong>**('.$info['province_destination'].')<br />'.$info['point_destination'].'</td>';
    		echo'<td><strong>'.$info['places_disponibles'].'</strong></td>';
    		echo'<td>'.$info['prix'].'</strong>'.$cad.'</td>';
    		echo'<td>&nbsp;</td>';
    		echo'</tr>';
    	}
    }
    Edit : Correction d'un bug

  5. #5
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    bien essayé Eric2a

    mais j'obtiens des messages d'erreur Notice: Undefined offset: 0 in C:\wamp\...
    lorsque j'affiche avec echo $info[0] $info[2] par exemple


  6. #6
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    À quel endroit ?

    Si tu tentes un "echo $info[0]" dans la boucle...
    foreach($tableau_res as $info){
    C'est normal... Dans cette boucle, le premier élément (indice 0) est $info['id']

  7. #7
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    le seul endroit ou je peux faire apparaitre un echo ou un print_r d'un $info
    c'est au debut de l'accolade ouvrante et avant l'accolade fermante du select qui vient de mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $sql="SELECT id,DATE_FORMAT(heure_depart,'%H:%i') AS time_depart,DATE_FORMAT(date_depart, '%d/%m/%Y') AS date_fr, voiturier_id,voiture_id,
    		places_disponibles, province_depart, ville_depart, point_depart, province_destination, ville_destination, point_destination, prix FROM departs_anonces ORDER BY date_depart ASC";
     
    		$data = mysql_query($sql) or die('Erreur - table depart: ' . mysql_error());
    		$totalRows_data = mysql_num_rows($data);
    		$nb_lignes = 10;
    		$nb_pages = ceil($totalRows_data/$nb_lignes);
     
    		while($info = mysql_fetch_array($data, MYSQL_NUM)) {  et la balise fermante
    autrement ou ailleurs, je dois declarer une variable qui corresond a
    ex
    $voiturierID= $info[3];

    et ensuite faire une echo de la variable
    bizarre hein!

  8. #8
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		$tableau_res[] = $info;
    qui correspond à
    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
    		$tableau_res[] = array(
    			'id'=>$info['id'],
    			'time_depart'=>$info['time_depart'],
    			'date_fr'=>$info['date_fr'],
    			'voiturier_id'=>$info['voiturier_id'],
    			'voiture_id'=>$info['voiture_id'],
    			'places_disponibles'=>$info['places_disponibles'],
    			'province_depart'=>$info['province_depart'],
    			'ville_depart'=>$info['ville_depart'],
    			'point_depart'=>$info['point_depart'],
    			'province_destination'=>$info['province_destination'],
    			'ville_destination'=>$info['ville_destination'],
    			'point_destination'=>$info['point_destination'],
    			'prix'=>$info['prix']
    		);

  9. #9
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    alors, je reviens ace que j'avais avant: un tableau associatif

  10. #10
    Membre émérite
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par monlou
    je n'avais pas ce probleme avec un tableau associatif

  11. #11
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    Eric2a Envoyé par monlou
    je n'avais pas ce probleme avec un tableau associatif
    ben, entre nous, je prefere le tableau associatif mais apparemment et en experience de cause, pour le script dont j'ai besoin, le tableau associatif ne fonctionne pas.

    avec le tableau associatif, j'affiche des enregistrements par lignes comme genre: catalogue sur une page.

    l'internaute choisit la ligne de son choix et avec un lien, je passe le id de la ligne avec Get sur une autre page et je passe le $tableau_res en session.

    je récupere le $_GET['idTrajet'] et je tente de récuperer la ligne de données de $tableau res récuper de la session qui coresspond au $_GET['idTrajet']

    mais avec un tableau associatif , ca fonctionne pas

  12. #12
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut indexer ton tableau par l'id de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $tableau_res[$info['id']] = array(
    			'time_depart'=>$info['time_depart'],
    			'date_fr'=>$info['date_fr'],
    			'voiturier_id'=>$info['voiturier_id'],
    			'voiture_id'=>$info['voiture_id'],
    			'places_disponibles'=>$info['places_disponibles'],
    			'province_depart'=>$info['province_depart'],
    			'ville_depart'=>$info['ville_depart'],
    			'point_depart'=>$info['point_depart'],
    			'province_destination'=>$info['province_destination'],
    			'ville_destination'=>$info['ville_destination'],
    			'point_destination'=>$info['point_destination'],
    			'prix'=>$info['prix']
    		);
    Tu pourras ainsi accèder simplement aux infos à partir de l'id recu
    $tableau_res[$_GET['idTrajet']]

  13. #13
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    Sabotage Tu pourras ainsi accèder simplement aux infos à partir de l'id recu
    $tableau_res[$_GET['idTrajet']]
    est-ce que cela voudrais dire que je n 'aurais pas besoin de mettre le tableau en session pour le recuperer sur l'autre page?

  14. #14
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 273
    Points
    273
    Par défaut
    Non, ça ne veut pas dire ça. Ca veut juste dire que tu pourras le récupérer plus facilement s'il est correctement indexé.

    Pardon, j'interviens en espérant plus ou moins me tromper dans me dire... Mais si j'ai bien compris, monlou, tu cherches à faire des choses de super compliquées et un peu bizarre (il faut bien l'admettre) alors que tu pourrais faire des choses simples....


    Si je reprends ta requete et ce qui suit

    Code php : 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
    35
    36
    37
    38
    39
    40
    41
    42
     
     
    $sql="SELECT id,DATE_FORMAT(heure_depart,'%H:%i') AS time_depart,
    DATE_FORMAT(date_depart, '%d/%m/%Y') AS date_fr,
    voiturier_id,voiture_id, places_disponibles,
    province_depart, ville_depart, point_depart,
     province_destination, ville_destination, point_destination, prix
    FROM departs_anonces ORDER BY date_depart ASC";
     
    $data = mysql_query($sql) or die('Erreur - table depart: ' . mysql_error());
    $totalRows_data = mysql_num_rows($data);
    $nb_lignes = 10;
    $nb_pages = ceil($totalRows_data/$nb_lignes);
    $tableau_res = array();
     
    while($info = mysql_fetch_array($data, MYSQL_BOTH)) {
    	$tableau_res[$info['id']] = $info;
    	// Ou si tu préfére ne pas indexé par rapport à ton id
    	// $tableau_res[] = $info;
    }
     
    /*
    Ensuite tu fais ton tripot et je sais pas trop ce qu'il s'y passe...
    Bref tu arrives à l'endroit ou tu écris ta sortie en tachant de ne
    pas avoir écrasé $tableau_res entre temps
    */
     
    if (!empty($tableau_res)) {
    	 foreach($tableau_res as $id => $info) {
     	 // Si tu n'as pas indexé ton tableau avec ton id tu écris ce qui suit
    	 //foreach($tableau_res as $info) {
     
    		echo"<tr class='tr'><td align='center'> <a href='../transactions/Transaction_Depart.php?idTrajet=".$id."'>Choisir</a> </td>";
           	 	echo'<td><strong>'.$info['date_fr'].'</strong><br />'.$info['time_depart'].'</td>';
           	 	echo'<td><strong>'.$info['ville_depart'].'</strong>**('.$info['province_depart'].')<br />'.$info['point_depart'].'</td>';
           	 	echo'<td><strong>'.$info['ville_destination'].'</strong>**('.$info['province_destination'].')<br />'.$info['point_destination'].'</td>';
           	 	echo'<td><strong>'.$info['places_dispo'].'</strong></td>';
           	 	echo'<td>'.$info['prix'].'</strong>$cad</td>';
            	 	'<td>&nbsp;</td>';
           	 	'</tr>';
           }
    }


    Tu pourrais tout aussi bien t'abstenir de passer par un tableau ($tableau_res) qui ne te sert finalement à rien. Tu pourrais faire directement ta boucle afin de lire tes données... Mais si tu veux à tout prix passer par un tableau, fais toi plaisir.


    Cordialement,
    Patouche

  15. #15
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    Patouche
    Tu pourrais tout aussi bien t'abstenir de passer par un tableau ($tableau_res) qui ne te sert finalement à rien. Tu pourrais faire directement ta boucle afin de lire tes données... Mais si tu veux à tout prix passer par un tableau, fais toi plaisir.


    Hé! hé! Ben, tu me fais réaliser que je n'ai pas vraiment besoin de ce tableau la!

    c'est un peu ca finalement dont j'ai besoin pour l'opération que je veux faire. une réflexion sur l'opération au total en économisant le maximum de ressources car c'est ma devise.

    l'important pour moi , c'est que lorsque l'utilisateur clique sur ''Choisir'' sur le tableau des données de la première page, bien de pouvoir transférer les données qui correspondent a la ligne du tableau choisi sur l'autre page par $_GET

    présentement, ce que je comprends, c'est que je transfere le id par $_GET sur l'autre page et je transfere aussi le tableau des données en session pour pouvoir l'indexer avec le ID du get

    Cependant, si il y a une meilleure facon de le faire, je suis ouvert a toute reflexion

  16. #16
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Stocker ta base de données en session ca n'a rien d'économique.
    Il suffit de faire la lecture de l'enregistrement que tu veux a l'arrivée.

  17. #17
    Membre habitué Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Points : 144
    Points
    144
    Par défaut
    Je suis très content d'avoir résolu ce sujet

    je remercie sincèrement ceux qui ont participé a cette discussion, j'en suis tres reconnaissant a: sabotage, patouche, Eric2a et madfrix
    toute l'opération se déroule sans problème jusqu'à la fin

    merci!

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

Discussions similaires

  1. Creer et afficher un tableau dynamique
    Par ne2sbeal dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/03/2010, 17h35
  2. Afficher un tableau dynamique
    Par stefvat dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/04/2009, 21h02
  3. [MySQL] Afficher un tableau dynamique
    Par mat_ingrid dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/03/2009, 16h04
  4. [MySQL] Afficher un tableau dynamiquement
    Par kamnouz dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/01/2009, 16h30
  5. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19

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