Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/03/2008, 17h53   #1
Membre habitué
 
Avatar de Alexandrebox
 
Inscription : août 2006
Messages : 613
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 613
Points : 107
Points : 107
Par défaut [Tableaux] Assigner à la même variable des valeurs différentes pour chaque lien

Bonjour,

Je suis en train de faire des liens dans un fichiers externe.
Le seul problème c'est quand je cherche à donner une valeur différente à la variable $page pour chaque lien différent.
Je ne peux pas faire ceci services.php?page=$valeur1 etc parce qu'il un url rewrite derrière qui me demande décrire comme ceci: services-$page.html

Voici mon code que j'essaie de modifier :
Code :
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
 
<?php
$information = "Demande d'information";
$faq = "Foire aux questions";
$photos = "Gelerie photos";
$news = "Les news d'Alberta";
$livredor = "Le livre d'or";
$video = "Vidéo";
 
 
 
$lienDemandeInfo = "informations";
$lienFaq = "foire-aux-questions";
$lienGalerie = "galerie-photos";
$lienAlbertaNews = "alberta-news";
$lienGusestBook = "guest-book";
$lienVideo = "video";
 
 
 
$menu = "<ul>";
$menu .= "<li><a href=\"services-$page.html\">$information</a></li>";
$menu .= "<li><a href=\"services-$page.html\">$faq</a></li>";
$menu .= "<li><a href=\"services-$page.html\">$photos</a></li>";
$menu .= "<li><a href=\"services-$page.html\">$news</a></li>";
$menu .= "<li><a href=\"services-$page.html\">$livredor</a></li>";
$menu .= "<li><a href=\"services-$page.html\">$video</a></li>";
$menu .= "</ul>";
?>
Bien entendu il y a derrière un fichier htaccess
Code :
1
2
3
RewriteEngine on 
RewriteRule ^([a-z\-]+)-([0-9a-zA-Z-]+)\.html$  services.php?page=$1 [L]
RewriteRule ^([a-z\-]+)-([0-9a-zA-Z-]+)-([0-9]+)\.html$  services.php?page=$1&IDT=$2 [L]
Bien entendu il y a à quelque part ce code pour afficher le contenu selon la valeur envoyée par $page.
Code :
$requete =  sprintf(" SELECT titre, contenu, ID FROM texte WHERE page='%s' ", $page);
Adez-moi SVP à écricre ce lien qui prend la valeur de:
$page = $lienDemandeInfo; => pour le lien information
$page = $lienFaq; => pour le lien faq
etc.

D'avance je vous remercie beaucoup
__________________
Je sais que je ne sais rien
Alexandrebox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 13h39   #2
Membre Expert
 
Inscription : juin 2003
Messages : 1 203
Détails du profil
Informations personnelles :
Localisation : Sénégal

Informations forums :
Inscription : juin 2003
Messages : 1 203
Points : 1 413
Points : 1 413
Tu peux crée un tableau à deux dimensions qui va contenir le titre et son lien.
exemple
Code :
1
2
3
4
5
6
7
8
9
 
$MonTableau=Array();
$MonTableau[0][0]="Demande d'information";
$MonTableau[0][1]="informations"
 
$MonTableau[1][0]="Foire aux questions";
$MonTableau[1][1]="foire-aux-questions"
 
...
Ensuite tu boucle sur ce tableau pour créer ton menu

Code :
1
2
3
4
5
6
7
8
9
 
$menu = "<ul>";
//tu récupéres la taille du tableau
   $taille= ? ...
for ($i=0;$i<$taille+1;$i++)
{
   $menu .= "<li><a href=\"$MonTableau[$i][1]\">$MonTableau[$i][0]</a></li>";
}
$menu .= "</ul>";
PS : C'est juste une indication. si c'est la même page qui est ouverte avec transmission de variable, il faudra modifier en conséquence le contenu du tableau et la génération du lien correspondant.
__________________
Amicalement
DMboup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 14h31   #3
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
ouais la solution est l'utilisation d'un tableau...

personnellement je l'aurais construit (et donc lu) autrement...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<?php
// création du tableau : lien => titre
$array = array(
		$page1 => "titre 1",
		$page2 => "titre 2",
		$page3 => "titre 3"
		);
 
// affichage du menu
echo "<ul>";
foreach( $array AS $key => $val ) {
	echo '<li><a href="'.$key.'.html">'.$val.'</a></li>';
}
echo "</ul>";
?>
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 15h51   #4
Membre habitué
 
Avatar de Alexandrebox
 
Inscription : août 2006
Messages : 613
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 613
Points : 107
Points : 107
Merci beaucoup à vous tous.
L'exemple de DMpoub est très clair. Mais là je vais essayer voir et vous tiens au courant. Le problème c'est que c'est vers la même page que ça va.
Je suis mal barré.
Je voudrais faire un site pro qui utilise un seul fichier mais me voilà dans la merde. Je vais finalement faire comme au bon vieux temps.
1 fichier par page.

ça m'apprendra à vouloir faire quelque chose de pro
__________________
Je sais que je ne sais rien
Alexandrebox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 15h56   #5
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
en fait ce que tu voulais faire, c'est un fichier index.php et le contenu ce sont des include() d'autres pages php non ?

faire un tout un site en une seule vraie page ca doit pas être tres compliqué mais hyper chiant
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 16h05   #6
Membre habitué
 
Avatar de Alexandrebox
 
Inscription : août 2006
Messages : 613
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 613
Points : 107
Points : 107
Oui je me rend compte.
Au fait comment font-ils les sites les pro en dév?
Moi je crée un fichier php pour chaque page. En suite je mets les fonctions sur autres pages php que j'appelle dans ma page en cours.
Mais chaque page a son fichier. Je me demande si c'est pro?
__________________
Je sais que je ne sais rien
Alexandrebox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 16h13   #7
Membre Expert
 
Avatar de darkstar123456
 
Inscription : mars 2008
Messages : 1 180
Détails du profil
Informations personnelles :
Âge : 28
Localisation : Belgique

Informations forums :
Inscription : mars 2008
Messages : 1 180
Points : 1 357
Points : 1 357
Envoyer un message via Skype™ à darkstar123456
hmmm je sais pas si je suis un pro mais je programme depuis longtemps maintenant...

depuis quelques années maintenant, je suis passé à un arbo comme celle-ci

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
admin/
   pages/
images/
include/
   config.php
   functions.php
pages/
   home.php
   page2.php
   page3.php
   page4.php
 
index.php
ma page index.php contient tout le design du site, le contenu se trouvant dans des pages qui sont dans le dossier "pages". Les liens sont de type : index.php?page=maPage

dans l'index.php j'ai un switch() qui gère l'include des pages
Code :
1
2
3
4
5
6
7
8
9
10
 
if( !isset($_GET["page"]) )
    $_GET["page"] = "";
 
switch( $_GET["page"]) ) {
   case "home" : include("pages/home.php"); break;
   case "page1" : include("pages/maPage1.php"); break;
   case "page2" : include("pages/maPage2.php"); break;
   default : include("pages/notFound.php"); break;
}
c'est assez bien pour l'URL rewriting ==> maPage.html au lieu de index.php?page=maPage ;-)
darkstar123456 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h57.


 
 
 
 
Partenaires

Hébergement Web