Un script en php un peu moche

Fermé
Arij86 Messages postés 124 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 21 avril 2011 - 17 juil. 2008 à 04:03
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 - 19 juil. 2008 à 23:10
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 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
17 juil. 2008 à 04:52
tu pourrais peu etre faire un switch
0
PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
17 juil. 2008 à 08:41
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 102 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 7 juillet 2010 11
17 juil. 2008 à 08:43
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 124 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 21 avril 2011 6
17 juil. 2008 à 21:54
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 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
17 juil. 2008 à 22:35
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 124 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 21 avril 2011 6
18 juil. 2008 à 04:19
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 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
18 juil. 2008 à 18:09
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 124 Date d'inscription vendredi 9 mai 2008 Statut Membre Dernière intervention 21 avril 2011 6
19 juil. 2008 à 15:09
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
19 juil. 2008 à 17:30
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 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
19 juil. 2008 à 17:39
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894 > PhP Messages postés 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009
19 juil. 2008 à 17:47
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 1770 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606 > Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017
19 juil. 2008 à 23:10
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