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] PHP, Array et réaffichage


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Par défaut [Tableaux] PHP, Array et réaffichage
    Bonjour,
    J'ai un probleme avec les tableaux. je remplie mon tableau et quand je veux reafficher le contenu, il ne m affiche que la derniere valeur du tableau. Voila la declaration :
    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
    <?
    		$req4 = "select emplacement, commande_web.id_cmd
    			from type_pdt_web, produit_web, pdt_rub, commande_web
    			where type_pdt_web like '%invite%'
    			and type_pdt_web.id_type_pdt = $produit
    			and produit_web.id_type_pdt = type_pdt_web.id_type_pdt
    			and produit_web.id_produit_web = pdt_rub.id_pdt
    			and pdt_rub.id_sup = $support
    			and commande_web.id_cmd = pdt_rub.id_cmd
    			and date_fc >= '$date%'
    			group by emplacement";
    		$res4 = mysql_query($req4);
     
    		for($i=0;$i<$nbr3;$i++)
    		{
    			while($row4 = mysql_fetch_assoc($res4))
    			{
    				$tab[$i][1] = $row4["emplacement"];
    				$tab[$i][2] = $row4["id_cmd"];
    			}
    		}
    	}
    ?>
    Et voila ou je veux mettre les valeurs du 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
    25
    <table width="90%" border=1 cellspacing=0 bordercolor="#AODOFF" bgcolor="white" align="center">
    	<tr>
    <?
    	for($i=1;$i<$nbr3;$i++)
    	{
    		for($j=1;$j<6;$j++)
    		{
    ?>
    		<td width="20%">&nbsp;<? 
    			if($tab[$i][1]==$j)
    			{
    				$cmd = $tab[$i][2];
    				$req4 = "select *
    						from commande_web, societe
    						where id_cmd = $cmd
    						and commande_web.code_soc = societe.code_soc";
    				$res4 = mysql_query($req4);
    				$row4 = mysql_fetch_assoc($res4);
    				echo "<ins>Emplacement N°:</ins> <strong>".$tab[$i][1]."</strong><br>&nbsp;".$row4["soc_org"]."<br>&nbsp;".preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $row4['date_fc']);
    			}
    		?></td><?
    		}
    		?>
    	</tr>
    ...</tableau>
    Pouvez vous me dire comment regler ce probleme
    Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\hybride\date_verif.php on line 135
    Alors que j'ai 2 lignes à inserer dans le tableau
    Merci d'avance pour vos reponses.

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    essaye de faire un var_dump de ton tableau, pour voire si il ressemble bien à ce que tu attends
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre éprouvé Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Par défaut
    Salut,

    Je pense que la définition des indices n'est pas fai correctement, car parfois ton script ne doit pas rentrer dans le while (celui du premier bloc ou tu définis $tab[$i])

    Cependant le $i continue a s'incrémenter...

    Du coup quand tu parcours $tab tu as peut etre bien 2 lignes mais avec deux indices qui ne se suivent pas...

    Le var_dump te le revelera

    Quand tu boucles imaginons qu'il n'existe que l'indice 1 et 3 ca fait un illegal offset pour l'indice 2

    ++

  4. #4
    Membre éclairé Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Par défaut
    ça m 'affiche ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { [0]=> array(2) { [1]=> string(1) "3" [2]=> string(3) "431" } }
    juste les dernieres valeurs

  5. #5
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    c'est donc que ton soucis est au niveau de l'affectation, et pas au niveau de l'affichage
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  6. #6
    Membre éclairé Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Par défaut
    Citation Envoyé par titoumimi
    c'est donc que ton soucis est au niveau de l'affectation, et pas au niveau de l'affichage
    c a d? dans l insertion dans le tableau??
    mais pourquoi, au moment de l insertion quand j affiche, il m'affiche toutes les valeurs? mais une fois je sors de la boucle, il me donne juste la derniere valeur (bien sur dans une boucle comme celle de l'insertion) ????

  7. #7
    Membre éclairé Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Par défaut
    merci titoumimi, ça a bien marché
    Mais maintenant, dans mon tableau qui contient 15 cases, 3lignes et 5colonnes, je veux que si $tab[$i][1] vaut le numero de la case, qu il m'affiche les infos dans cette case.
    Par exemple, si $tab[$i][1] = 5, alors dans la case 5, 1ere ligne 5eme colonne, il m'affiche qq données.
    Alors pour cela, j'ai mis ce 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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    <table width="90%" border=1 cellspacing=0 bordercolor="#AODOFF" bgcolor="white" align="center">
    	<tr>
    <?
    	for($i=0;$i<$nbr4;$i++)
    	{
    		for($j=0;$j<5;$j++)
    		{
    		?>
    		<td width="20%">&nbsp;<? 
    			if($tab[$i][1]==$j)
    			{
    				$cmd = $tab[$i][2];
    				$req4 = "select *
    						from commande_web, societe
    						where id_cmd = $cmd
    						and commande_web.code_soc = societe.code_soc";
    				$res4 = mysql_query($req4);
    				$row4 = mysql_fetch_assoc($res4);
    				echo "<ins>Emplacement N°:</ins> <strong>".$tab[$i][1]."</strong><br>&nbsp;".$row4["soc_org"]."<br>&nbsp;".preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $row4['date_fc']);
    			}
    		?></td><?
    		}
    		?>
    	</tr>
    	<tr>
    		<?
    		for($j=5;$j<10;$j++)
    		{
    		?>
    		<td width="20%">&nbsp;<? 
    			if($tab[$i][1]==$j)
    			{
    				$cmd = $tab[$i][2];
    				$req4 = "select *
    						from commande_web, societe
    						where id_cmd = $cmd
    						and commande_web.code_soc = societe.code_soc";
    				$res4 = mysql_query($req4);
    				$row4 = mysql_fetch_assoc($res4);
    				echo "<ins>Emplacement N°:</ins> <strong>1</strong><br>&nbsp;".$row4["soc_org"]."<br>&nbsp;".preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $row4['date_fc']);
    			}
    		?></td><?
    		}
    		?>
    	</tr>
    	<tr><?
    		for($j=10;$j<15;$j++)
    		{
    		?>
    		<td width="20%">&nbsp;<? 
    			if($tab[$i][1]==$j)
    			{
    				$cmd = $tab[$i][2];
    				$req4 = "select *
    						from commande_web, societe
    						where id_cmd = $cmd
    						and commande_web.code_soc = societe.code_soc";
    				$res4 = mysql_query($req4);
    				$row4 = mysql_fetch_assoc($res4);
    				echo "<ins>Emplacement N°:</ins> <strong>1</strong><br>&nbsp;".$row4["soc_org"]."<br>&nbsp;".preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $row4['date_fc']);
    			}
    		?></td><?
    		}
    		?>
    	</tr>
    <?
    	}
    ?>
    </table>
    Il marche mais le probleme, c est pour chaque valeur, il doit refaire tout le tableau. c a d, si j ai 2 valeurs, j ai un tableau de 6 lignes et 5 colonnes

  8. #8
    Membre éclairé Avatar de kagura
    Inscrit en
    Avril 2005
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 360
    Par défaut
    Si j ai une seule valeur 143 => 3, je n aurai aucun probleme ni aucune erreur

  9. #9
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    essaye de remplacer ton affectation par ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    		$res4 = mysql_query($req4);
     
    		$i=0;
    			while(($row4 = mysql_fetch_assoc($res4)) && ($i<$nbr3))
    			{
    				$tab[$i][1] = $row4["emplacement"];
    				$tab[$i][2] = $row4["id_cmd"];
    				$i++;
    			}
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

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

Discussions similaires

  1. Tableaux php, array to string
    Par Lekno dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 10/12/2013, 11h52
  2. Réponses: 4
    Dernier message: 18/02/2011, 16h55
  3. [Tableaux] Tableau (array) PHP/ foreach
    Par KOUTO dans le forum Langage
    Réponses: 2
    Dernier message: 01/06/2009, 00h54
  4. Réponses: 4
    Dernier message: 24/09/2005, 09h52
  5. Recupération de tableaux PHP avec PL/pgSQL
    Par moog dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 17h11

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