utilisation de variable besoin d'aide ^^

Eléphanteau du PHP | 13 Messages

15 avr. 2008, 17:02

Bonjour,

je cree actuellement un site web qui permet de conserver en archive les anciennes page d'accueil stocké dans une base de donnée.
j'ai une premiere page (edition.php) qui liste les archives des anciennes page d'acceuil suivant leur année (1page d'acceuil/an).
<?php
$requete=mysql_query("SELECT * FROM accueil ORDER BY annee " ) or die(mysql_error());

while($resultat=mysql_fetch_array($requete))
{
?>			
	<li><a href='index.php?numsousmenu=87'>Edition <?php echo $resultat['annee'] ?></a></li>
<?php } ?>
Jusque la pas de souci. Ensuite en cliquant sur l'année désiré, la page année.php (correspondant au sous menu 87) s'ouvre contenant donc le titre et le texte de larchive selectionné...une ancienne page d'accueil quoi ^^.
<?php 
mysql_connect("*******", "*******", "******");
mysql_select_db("******");

$requete=mysql_query("SELECT * FROM accueil" ) or die(mysql_error());

while($resultat=mysql_fetch_array($requete))
{
?>

<h2><?php echo $resultat['titre']?></h2>
<br/>

<p class='spip'><?php $contenu=nl2br(stripslashes($resultat['texte']));

echo $contenu; ?></p>
<br/>
<p class='spip'>L'association Peña Salbaïa</p><br/>

<?php } ?>
Comment je peux faire pour que ma 2eme page (annee.php) avec une variable m'affiche le contenu de l'annee selectionné dans edition.php?

Merci ^^

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 avr. 2008, 18:24

Tu transmets une variable "année" dans ton lien vers "annee.php" :

Code : Tout sélectionner

href="annee.php?annee=2005"
Variable que tu récupèreras via $_GET dans ta page annee.php :
// 2008 est ici une année par défaut
$annee = (isset($_GET['annee'] && !empty($_GET['annee']))?$_GET['annee']:2008;
et tu insères cette variable dans ta requête, en faisant d'éventuelles vérifications concernant son type par exemple (vérification que "annee" est bien un nombre) ou autre.

Eléphanteau du PHP | 13 Messages

16 avr. 2008, 08:58

Je ne peux pas faire ca sinon cela signifierai qu'il faut que je crée autant de page PHP qu'il y aura d'année. Hors en faite je suis en train de créer un site d'administration du site principale.

En faite quand l'administrateur du site voudra créer une nouvelle page d'accueil, celle ci s'affichera en page d'accueil (ça, ça marche pas de souci), et toute les ancienne iront dans archive;Se que j'essai de faire donc c'est que tout soi automatisé.
Par exemple dans ma page archive ce code me permet de lister toute les année cree dans la base jusqu'à présent
<?php
$requete=mysql_query("SELECT * FROM accueil ORDER BY annee " ) or die(mysql_error());

while($resultat=mysql_fetch_array($requete))
{
?>            
    <li><a href='index.php?numsousmenu=87'>Edition <?php echo $resultat['annee'] ?></a></li>
<?php } ?> 
et de faire un <a> sur chaque lien.Maintenant a partir de sa, je voudrai simplement crée UNE page annee.php qui s'ouvrirai via mon <a> et qui afficherai le contenu en fonction de l'année selectionné.

Merci quand même pour ta solution, je m'étais peut être mal exprimé ^^

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

16 avr. 2008, 10:13

Je ne peux pas faire ca sinon cela signifierai qu'il faut que je crée autant de page PHP qu'il y aura d'année.
Ben non, c'est justement le principe de la variable...


Page edition.php : liste les années dispos ---> transmet l'année choisie par le lien ---> annee.php : charge la page correspondant à l'année transmise

Eléphanteau du PHP | 13 Messages

16 avr. 2008, 10:19

Ah oki dsl pas vu.

Bah le seul petit souci en faite c'est que mes pages edition.php et annee.php apartiennent a une page.php (qui elle est dans un include de mon index.php) et qui prend tel ou tel valeur suivant le sous menu sélectionnée donc je suis obligé de laissé un href=index.php?sousmenu=87 (87=annee.php).

J'ai essayé de voir si je pouvai pas mettre un truc du style

Code : Tout sélectionner

<a href="index.php?numsousmenu=87=' . $annee . '">
mais evidemment marche pas ^^ mais je cherche dans se sens la.(ce code étant dans ma boucle bien evidemment)

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Eléphanteau du PHP | 13 Messages

16 avr. 2008, 14:49

Akhj
Modifié en dernier par darontankian le 16 avr. 2008, 14:55, modifié 1 fois.

Eléphanteau du PHP | 13 Messages

16 avr. 2008, 14:50

Alors ca fonctionne on mettant ce code la dans edition.php
<?php
$requete=mysql_query("SELECT * FROM accueil ORDER BY annee " ) or die(mysql_error());

while($resultat=mysql_fetch_array($requete))
{
?>			
	<li><?php echo "<a href='archive/annee.php?accueil=" . $resultat['id_accueil'] . "'>"; ?>Edition <?php echo $resultat['annee'] ?></a></li>
	
	
<?php  } ?>
et celui-ci dans annee.php :
$retour = mysql_query('SELECT * FROM accueil WHERE id_accueil=\'' . $_GET['accueil'] . '\'');
$donnees = mysql_fetch_array($retour);
?>
<h2><?php echo $donnees['titre'] ?></h2>
<br/>
<p class='spip'><?php $contenu=nl2br(stripslashes($donnees['texte']));

echo $contenu; ?></p>
<br/>
<p class='spip'>L'association Peña Salbaïa</p><br/>
Mais bon voila du coup comme je l'ai dis plus haut en faite mon index.php recoit par le bié de la variable sousmenu, la valeur que doit prendre la variable $lien situé dans mon include page.php (contenu de ma page).C'est peut etre pas trop francais le mieu c'est que je montre le code ^^
<?php
$paramlien=$_GET['numsousmenu'];
$lien='presentation.php';

switch($paramlien)
{
case '1';
	$lien='presentation.php';
	break;
case '2';
	$lien='programme.php';
	break;
...

<div id="page">
		<?php
		            include $lien;
		?>
</div>
Voila mieux?Donc en faite se que j'ai fait fonctionne mais s'ouvre dans une page blanche sans rien evidemment vu qu'il ne rentre pas dans mon index.php...

Comment je pourrai faire pour que lorsque je clique sur mon année (edition.php) celle-ci s'ouvre dans mon index.php tout en gardant ses parametre?

Merci dsl pour le fouilli ^^


[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]