Un exemple de boucle avec passage de l'id dans l'url

Eléphant du PHP | 193 Messages

20 févr. 2007, 12:37

Bonjour à tous!


J'ai un souci avec un récupération par le GET.
Je souhaite qu'au clic sur des titres placés dans une div; alors le résultat s'affiche dans une autre div, sinon s'affiche une valeur par défaut.

pour l'instant cette valeur par défaut semble fonctionner, mais au clic sur l'un des liens, rien ne se passe. Mon code est le suivant:

Je me connecte à ma base:
mysql_select_db($database_administration, $administration);
Je fais ma requête: sélectionne tous mes champs de ma table tbl_breve et j'organise les données par date décroissante (en commançant donc par la plus récente: actu):
$query_rs_breve = "SELECT * FROM tbl_breve ORDER BY date_breve DESC";
$rs_breve = mysql_query($query_rs_breve, $administration) or die(mysql_error());
$row_rs_breve = mysql_fetch_assoc($rs_breve);  
$resultat = mysql_query($query_rs_breve);
Je teste si mon url n'intègre rien, alors je récupère valeur par défaut. Si j'ai un lien dans l'url, alors je sélectionne tout de ma base où l'id_breve(identifiant unique) correspond à mon lien et sont triés du plus récent au plus ancien.
mysql_select_db($database_administration, $administration);     
if (($_GET['lien']) == '') { $_GET['lien']= $row_rs_breve['contenu_breve'];} 
if (isset($_GET['lien'])){
$query_rs_affichage_breve = "SELECT * FROM tbl_breve WHERE id_breve='".$_GET['lien']."'ORDER BY id_breve DESC";
} 

$rs_affichage_breve = mysql_query($query_rs_breve, $administration) or die(mysql_error());
$row_rs_affichage_breve = mysql_fetch_assoc($rs_breve); 
J'affiche ma boucle de titres dans ma première div:

Code : Tout sélectionner

<div id="affichage_breve-titre"> <?php while ($row_rs_breve = mysql_fetch_array($resultat)) { ?><p><a href="index.php?lien=<?php echo $row_rs_breve['id_breve']; ?>"><?php echo $row_rs_breve['date_breve']; ?>: <?php echo $row_rs_breve['titre_breve']; ?> <?php } ?></a></p> </div>
J'essai d'afficher le contenu de la berve dans ma seconde div:

Code : Tout sélectionner

<div id="affichage_breve-contenu"> <p><?php echo $row_rs_affichage_breve['contenu_breve']; ?></p> </div>
Plusieurs: Pourquoi la valeur reste par défaut? Comment dire à la requête que la valeur par défaut doit être celle renseignée en dernier avec le plus grand id?

Une autre question qui n'a rien à voir: comment déterminer que l'on veut afficher les dernières dates. Par exemple les 5 derniers jours?

Merci par avance!
Modifié en dernier par Neomcdn le 21 févr. 2007, 10:45, modifié 1 fois.

Eléphant du PHP | 193 Messages

21 févr. 2007, 10:42

Bonjour à tous!

J'ai du nouveau par rapport à mon post. J'avais récupéré mon code sur un anicen de mes fichiers et j'avais oublié des modifs (heureusement un pote m'a aidé.

Je republie donc le bon code pour ceux que ça pourrait aider: il permet de récupérer la valeur id passée dans l'url, grâce à des liens et intègre un affichage par défaut en cas d'abscence de clic sur l'un des liens!

Voici le code:


<?php require_once('Connections/administration.php'); 
mysql_select_db($database_administration, $administration);
$query_rs_breve = "SELECT * FROM tbl_breve ORDER BY date_breve DESC";
$rs_breve = mysql_query($query_rs_breve, $administration) or die(mysql_error());
$row_rs_breve = mysql_fetch_assoc($rs_breve);  
$resultat = mysql_query($query_rs_breve);

mysql_select_db($database_administration, $administration);     
if (($_GET['lien']) == '') { $_GET['lien'] = $row_rs_breve['id_breve'];}
if (isset($_GET['lien'])){
$query_rs_affichage_breve = "SELECT contenu_breve FROM tbl_breve WHERE id_breve='".$_GET['lien']."'";
} 

$rs_affichage_breve = mysql_query($query_rs_affichage_breve, $administration) or die(mysql_error());
$row_rs_affichage_breve = mysql_fetch_assoc($rs_affichage_breve); 
?>
Dans le body: affichage d'une boucle avec les titres, puis affichage du contenu:

Code : Tout sélectionner

<div id="affichage_breve-titre"> <?php while ($row_rs_breve = mysql_fetch_array($resultat)) { ?><p><a href="index.php?lien=<?php echo $row_rs_breve['id_breve']; ?>"><?php echo $row_rs_breve['date_breve']; ?>: <?php echo $row_rs_breve['titre_breve']; ?> <?php } ?></a></p> </div> <div id="affichage_breve-contenu"> <p><?php echo $row_rs_affichage_breve['contenu_breve']; ?></p> </div>
Ma table est tbl_breve et les champs sont:
- id_breve (numéro auto)
- titre_breve
- contenu_breve
- date_breve

En espérant que cela puisse aider