Un script en php un peu moche

Arij86 Messages postés 132 Statut Membre -  
PhP Messages postés 1774 Statut Membre -
Bonsoir ;

j'ai fais un script en php ,ça marche trés bien sauf que c'est moche ! ..voila le code si vous avez une autre idée :

$a="sport" ;
$b="economique";
$c="politique";
$d="artistique";
$e="culture";
$f="international";
$g="interview";
$h="juridique";
$i="sociale";
$j="sondage";


//sport
if ($categorie==$a)

{
$voir="../".$categorie."/contenu" ;
}
//economique
elseif($categorie==$b)

{
$voir="../".$categorie."/contenu" ;
}
//politique
elseif($categorie==$c)

{
$voir="../".$categorie."/contenu" ;
}
//artistique
elseif($categorie==$d)

{
$voir="../".$categorie."/contenu" ;
}

//culture
elseif($categorie==$e)

{
$voir="../".$categorie."/contenu" ;
}
//international
elseif($categorie==$f)

{
$voir="../".$categorie."/contenu" ;
}


elseif($categorie==$g)
//interview
{
$voir="../".$categorie."/contenu" ;
}

elseif($categorie==$h)
//juridique
{
$voir="../".$categorie."/contenu" ;
}

elseif($categorie==$i)
//sociale
{
$voir="../".$categorie."/contenu" ;
}
//sondage
elseif($categorie==$j)
{
$voir="../".$categorie."/contenu" ;

}

Merci :)
A voir également:

6 réponses

mype Messages postés 2449 Statut Membre 437
 
tu pourrais peu etre faire un switch
0
PhP Messages postés 1774 Statut Membre 606
 
Bjr

Oui en utilisant un tableau par exemple

<?php
$categories = array();

$categories[]="sport" ; 
$categories[]="economique"; 
$categories[]="politique"; 
$categories[]="artistique"; 
$categories[]="culture"; 
$categories[]="international"; 
$categories[]="interview"; 
$categories[]="juridique"; 
$categories[]="sociale"; 
$categories[]="sondage"; 

function voirCategorie($categorie)
{
	global $categories;
	if (in_array($categorie,$categories))
	{
		return "../".$categorie."/contenu" ; 
	}
	else
	{
		return "";
	}
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt­­d"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
</head>
<body>
<?php
echo "Voir=".voirCategorie("politique")."<br />";
echo "Voir=".voirCategorie("sondage")."<br />";
echo "Voir=".voirCategorie("sciences")."<br />";

?>
</body>
--

PhP  
Il y a 10 types de personnes dans le monde : ceux qui comprennent le binaire et les autres ...
0
Absinthe06 Messages postés 113 Statut Membre 11
 
parfaitement d'accord avec mype, utilise plutot un truc comme ca :


switch($categorie) {
     case 'sport' :
     case 'economique' :
     case 'politique' :
     case 'artisique' :
     case 'culture' :
     case 'international' :
     case 'juridique' :
     case 'interview' :
     case 'social' :
     case 'sondage' :
        $bool = true;
        break;
     default :
        $bool = false;
        break;
}

if($bool)
     $voir="../".$categorie."/contenu" ;
else
     echo 'Erreur : catégorie inexistante';




Voila, c'est plus propre, et ca te permet tout de même de verifier que tu affiche une catégorie existante, ou d'afficher un message d'erreur si ce n'est pas le cas ;)
0
Arij86 Messages postés 132 Statut Membre 6
 
Merci beaucoup , mais j'ai oublié de dire que pour le contenu il change aussi mais je connais le nom de chaque contenu : genre

if ($categorie==$a)

{
$voir="../".$categorie."/df753be3ebdff5c3e8c01bc9b1f50b1d" ;
}
//economique
elseif($categorie==$b)

{
$voir="../".$categorie."/be8623b1ae813c678e8999c1bec24a1f" ;
}
.......etc

je fais deux switch ?!!
0
PhP Messages postés 1774 Statut Membre 606
 
Non tu utilises un tableau associatif

<?php
$categories = array();

$categories["sport"]="3df753be3ebdff5c3e8c0­1bc9b1f50b1d"; 
$categories["politique"]="be8623b1ae813c678e89­99c1bec24a1f"; 
// etc ...

function voirCategorie($categorie)
{
	global $categories;
	if (isset($categories[$categorie]))
	{
		return "../".$categorie."/".$categories[$categorie]; 
	}
	else
	{
		return "";
	}
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt­­­d"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
</head>
<body>
<?php
echo "Voir=".voirCategorie("politique")."<br />";
echo "Voir=".voirCategorie("sport")."<br />";
echo "Voir=".voirCategorie("sciences")."<br />";

?>
</body>

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arij86 Messages postés 132 Statut Membre 6
 
j'ai misi ton code mais ça na pas marché sniif ,voila ce que j'ai mis :

au début j'ai une variable nommé $categorie qui contient la nom de ma catégorie

//mon tableau


$categories = array();


$categories["sport"]="df753be3ebdff5c3e8c01bc9b1f50b1d";
$categories["economique"]="be8623b1ae813c678e8999c1bec24a1f";
$categories["politique"]="0e0eba5c26f15ccd1dce4bc7c379ab4e";
$categories["artistique"]="803df6248ca47867463c83d0220b89e7";
$categories["culture"]="69d062ba64bf77c4ea58fb6d2761f26b";
$categories["international"]="5ba59a02f4385ca1a0d86163d7faf10b";
$categories["interview"]="92db2d49fcb8742ea6f654cdc2234b45";
$categories["juridique"]="076aa3739b63df09e6276a9f09280422";
$categories["international"]="5ba59a02f4385ca1a0d86163d7faf10b";
$categories["sociale"]="56c9b81e3446d1cc3114c3fd85f311e4";
$categories["sondage"]="4d7c95f24ab388838fbe0688780a9b40";


function voirCategorie($categorie)
{
global $categories;
if (isset($categories[$categorie]))
{
//je construit ma variable $voir
$voir= "../".$categorie."/".$categories[$catego­rie];
}
else
{
return "";
}
}

et aprés quand j'utilise cet variable dans un Url ba ça marche pas ca donne un url du genre

nomdudossier/.php?i=num

cad que la fonction retourne ça return ""
j'ai misi ton code mais ça na pas marché sniif ,voila ce que j'ai mis :

au début j'ai une variable nommé $categorie qui contient la nom de ma catégorie

//mon tableau


$categories = array();


$categories["sport"]="df753be3ebdff5c3e8c01bc9b1f50b1d";
$categories["economique"]="be8623b1ae813c678e8999c1bec24a1f";
$categories["politique"]="0e0eba5c26f15ccd1dce4bc7c379ab4e";
$categories["artistique"]="803df6248ca47867463c83d0220b89e7";
$categories["culture"]="69d062ba64bf77c4ea58fb6d2761f26b";
$categories["international"]="5ba59a02f4385ca1a0d86163d7faf10b";
$categories["interview"]="92db2d49fcb8742ea6f654cdc2234b45";
$categories["juridique"]="076aa3739b63df09e6276a9f09280422";
$categories["international"]="5ba59a02f4385ca1a0d86163d7faf10b";
$categories["sociale"]="56c9b81e3446d1cc3114c3fd85f311e4";
$categories["sondage"]="4d7c95f24ab388838fbe0688780a9b40";


function voirCategorie($categorie)
{
global $categories;
if (isset($categories[$categorie]))
{
//je construit ma variable $voir
$voir= "../".$categorie."/".$categories[$catego­rie];
}
else
{
return "";
}
}

et aprés quand j'utilise cet variable dans un Url ba ça marche pas ca donne un url du genre

nomdudossier/.php?i=num

cad que la fonction retourne :

else
{
return "";
}
et que la vérification n'est pas correct du isset ,je dois changer quelque chose ?!

merci ^^
0
PhP Messages postés 1774 Statut Membre 606
 
Bsr

Il faudrait que tui donnes le code PHP où tu construis ton url en appellant la fonction voirCategorie() car tout le reste me semble correct.
0
Arij86 Messages postés 132 Statut Membre 6
 
Merci beaucoup ,dsl je n'ai pas pu répondre avant car je suis un peu malade

bonne journée ;)
0
Alain_42 Messages postés 5413 Statut Membre 894
 
Salut,

a mon avis ton principe de fonction pêche

ça ne sert à rien de mettre une variable globale $categories dedans ta fonction ça "écrase" celle que tu as définie plus haut dans ton code

il vaut mieux lui passer la variable, même si c'est un array lors de l'appel de celle çi

et n'oublie pas de faire le return de ce que fait la fonction:

function voirCategorie($categorie,$categories){

	if (isset($categories[$categorie])){
	//je construit ma variable $voir
	$voir= "../".$categorie."/".$categories[$catego­­rie];
	return $voir;
	}else{
		return "";
	}
} 


et tu appelles ta fonction par voirCategorie($categorie,$categories);
0
PhP Messages postés 1774 Statut Membre 606 > Alain_42 Messages postés 5413 Statut Membre
 
Bjr

Bien sûr que non ça n'écrase pas le contenu d'une variable de la redéfinir en global à l'intérieur d'une fonction !
Le préfixe global sert à l'empêcher justement. ;-)
Si c'était le cas alors les variables globales seraient tout simplement inutiles.

Cela dit on peut aussi passer le tableau $categories en paramètre naturellement.

Ici le pb vient plutôt d'une mauvaise utilisation de la fonction voirCategorie() que de la fct elle-même.
0
Alain_42 Messages postés 5413 Statut Membre 894 > PhP Messages postés 1774 Statut Membre
 
Oui tu as raison pour Global, mais perso je pré ferrai la définir comme globale dès le départ plutôt que dans la fonction
0
PhP Messages postés 1774 Statut Membre 606 > Alain_42 Messages postés 5413 Statut Membre
 
Oui c'est vrai qu'utiliser des variables globales c'est pas top car ça lie la fonction à une variable externe.

En général en PHP je me cantonne aux tableaux superglobaux prédéfinis et je n'ai pas besoin des variables globales car je préfère et de loin créer des classes d'objet. Le hic c'est que pour une raison que j'ignore les gens trouvent souvent que c'est plus compliqué
0