problem avec tableau array

Eléphant du PHP | 89 Messages

05 avr. 2006, 15:11

voilà c'est encore moi avec un autre soucis :
je fais donc un tableau array (excusez moi je ne sais pas si c francais)
<?php
//tableau des différents cas de type Edition
$casTyp = array ( "F"=> "Fax",
"I"=> "Internet Hprim Médecin",
"HD"=> "Hprim Demande",
"M"=> "Hprim Médecin Modem",
"RR"=> "Réception Résultat",
"RD"=> "Réception Demande",
"HR"=> "Envoi Résultat",
"HF"=> "Envoi Facturation",
"RA"=> "Réception Admission");
?>
donc ce que je veux juste faire c'est d'afficher dans mon tableau par exemple "Fax" au lieu de "F":
elseif($i==3)
{
		$type = $resultcc->fields[$i];//je récupère ma données de la base que je mets dans $type
		if(array_key_exists("$type",$casTyp))//si $type existe dans mon tableau 
		        printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );//j'affiche ceux à quoi correspond $type dans le tableau
			else	printf( "\n<td><center>".$type."</center></td>\n" );//sinon j'affiche $type
				
}
probleme il ne me trouve pas le "I" et il me trouve uniquement le premier "F", chose très bizarre. Il trouve aussi "HD" et "RR".
Dans ma base de données se trouve 5 cas seulement : "I","F","HD" et "RR", il y a aussi "FD" mais ce cas n'est pas répertorié dans mon tableau.

donc je ne comprends pas pourquoi

espérant que ce ne soit pas une faute bete une fois de plus, je vous remercie de votre aide!!!

Eléphant du PHP | 451 Messages

05 avr. 2006, 15:25

A mon avis, les " autour de $type sont en trop !!!
        if(array_key_exists("$type",$casTyp))//si $type existe dans mon tableau
...
	        printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );//j'affiche ceux à quoi correspond $type dans le tableau
Essaye :
        if(array_key_exists($type,$casTyp))//si $type existe dans mon tableau
...
	        printf( "\n<td><center>".$casTyp[$type]."</center></td>\n" );//j'affiche ceux à quoi correspond $type dans le tableau
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Mammouth du PHP | 768 Messages

05 avr. 2006, 15:30

Modifié en dernier par mario le 05 avr. 2006, 16:37, modifié 1 fois.
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 89 Messages

05 avr. 2006, 15:52

Ben non il faut les ", c'est sur .j'ai testé quand meme au cas ou et il faut les guillemet.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

05 avr. 2006, 15:57

$type est bien récupéré dans tout les cas ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 768 Messages

05 avr. 2006, 16:03

$type = 'F';
if ( (isset($type)) && (array_key_exists($type, $casTyp)) ){
   echo $casTyp[$type]; // Fax 
}
else
{
   echo $type;
}
M A R I O
Si une patte de lapin porte bonheur, qu'a-t-il bien pu arriver au lapin ?

Eléphant du PHP | 89 Messages

05 avr. 2006, 16:34

salut Mario j'ai testé ton bout de programme mais sa donne le meme résultat que pour mon bout de programme, sa ne reconnait pas le I et F (sauf le premier).
FaxF F F F F I I I I I I I I I I I I Hprim DemandeI I I I
sinon Zeus j'affiche $type et je récupère bien à chaque fois F ou I ou HD ou RR.

c'est vraiment très bizarre je ne comprends pas

Eléphant du PHP | 89 Messages

05 avr. 2006, 16:49

j'ai l'impression que que les termes à une lettre (I,F et M) ne sont pas reconnus.
comment faire???

Eléphant du PHP | 89 Messages

05 avr. 2006, 17:41

elseif($i==4)
			{
				$type = $result->fields[$i];
				
				//echo "castype : ".$casTyp["$type"]."<br>";
				if(array_key_exists("$type",$casTyp))
				{
					printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );
				}
				else	
				{
					echo $type;
					if($type=="F")
					{
						$type=="FF";
						printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );
						echo "nextype:".$type."<br>";
					}
					elseif($type=="I")
					{
						$type=="II";
						printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );
					}
					elseif($type=="M")
					{
						$type=="MM";
						printf( "\n<td><center>".$casTyp["$type"]."</center></td>\n" );
					}
					else	printf( "\n<td><center>".$type."</center></td>\n" );
				}
			}
pensant qu'une seule lettre posait probleme alors j'ai émis des conditions pour si par exemple $type=="F" alors je remplacais la valeur de type par "FF"(valeur changé dans mon tableau aussi) mais probleme, mon echo me donne bien F mais mon if($type=="F") ne passe pas et signifie donc que mon $type est différent de F or j'affiche F!!!

Là je ne comprends plus, si vous y comprenez quelque chose, aidez moi MERCI!!!

Eléphant du PHP | 89 Messages

06 avr. 2006, 11:31

N'ayant toujours pas de réponse , je suppose que personne n'a trouvé de réponse à ma solution!!!

Please aider moi à trouver!!!

sinon avez vous une autre technique pour permettre d'afficher dans un tableau la signification d'une donnée d'une base.

c'est a dire : dans ma base j'ai par exemple F (qui signifie Fax ) et au lieu d'afficher F, j'affiche Fax.

si vous avez des suggestion merci sinon moi que vous aussi ne comprenez pas pourquoi mon truc ne marche pas.

sinon peut etre que c'est sur mon PC que sa marche pas alors peut etre que quelqu'un pourrait tester sur son PC, je lui fournirais mon programme avec une base....