Affichage liste/détails de données mysql-php

[Résolu/Fermé]
Signaler
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
-
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
-
Bonjour,
J'ai une page PHP dans mon site qui affiche des données provenant d'une table MySQL.
Ces données ont une date, un titre et un texte.
Pour l'instant tout est affiché sur la page mais ce que j'aimerai faire c'est n'avoir que les dates et titres de visibles et que le texte ne s'affiche sous la date et le titre que si l'internaute clique sur le titre...
Est-ce que quelqu'un sait faire ça ?
Merci !!!!!

5 réponses

Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
Bonsoir,

un petit bout de code, la page s'appelle elle même qd on clique sur le titre et dans ce cas on affiche en plus le texte

<?php
//recup du titre quand page appelée par clique sur le lien
if(isset($_GET['titre'])){$titre=$_GET['titre'];}else{$titre="";}

//connexion serveur selection base etc..

//puis
$reponse=mysql_query("SELECT * FROM ta_table");
while ($row=mysql_fetch_array($reponse)){
	echo $row['date']."  <a href='".$SERVER['PHP_SELF']."?titre=".$row['titre']."'>".$row['titre']."</a><br />"
	if($row['titre'] == $titre){
		//on affiche le texte
		echo $row['texte']."<br />";
	}
}
?>


@lain
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
Bonsoir Alain,

Merci pour ta réponse.
J'ai essayé d'intégrer ton code à ma page mais impossible d'afficher la page dans le navigateur.
Je suis plutôt novice dans le domaine alors si tu avais la gentillesse de m'aider un peu plus, ce serait vraiment très sympa.
Voici le bout de code de ma page qui affiche mes données. Celui-là tout seul il fonctionne mais quand j'essaie d'y intégrer le tien... plus rien ;-(

<?php do { ?>
<table width="587" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h1><?php echo $row_rsActu['date']; ?>/<?php echo $row_rsActu['mois']; ?>/<?php echo $row_rsActu['annee']; ?> - <?php echo strtoupper($row_rsActu['titre']); ?></h1></td>
</tr>
<tr>
<td><p><?php echo nl2br($row_rsActu['texte']); ?></p></td>
</tr>
</table>
<?php } while ($row_rsActu = mysql_fetch_assoc($rsActu)); ?>

Merci d'avance !
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
essayes comme ça:

<?php
//tu dois avoir déja connexion serveur selection base etc..

//recup du titre quand page appelée par clique sur le lien
if(isset($_GET['titre'])){
$titre=$_GET['titre'];

}else{$titre="";

}



//puis
$reponse=mysql_query("SELECT * FROM ta_table");


 do {
 ?>
<table width="587" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h1><?php echo $row_rsActu['date']; ?>/<?php echo $row_rsActu['mois']; ?>/<?php echo $row_rsActu['annee']; ?> - <?php echo strtoupper($row_rsActu['titre']); ?></h1><a href="<?php echo $_SERVER['PHP_SELF']."?titre=".$row_rsActu['titre']; ?>">Plus de d&eacute;tails</a></td>
</tr>
<?php

 if(isset($_GET['titre'] ) AND $titre == $row_rsActu['texte']) {
 //si ce titre a été demandé on affiche 
?>
<tr>
<td><?php echo nl2br($row_rsActu['texte']); ?></td>
</tr>
<?php
}
?>
</table>
<?php 
} while ($row_rsActu = mysql_fetch_assoc($rsActu));
 ?> 


@lain
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
Bjr Alain,

Merci beaucoup pour ton aide.
J'y suis presque et j'essaie de trouver pourquoi ça ne fonctionne pas à 100% depuis 3 heures mais je ne trouve pas... il y a de quoi devenir dingue !!! J'suis vraiment mauvaise...
En fait, quand je clique sur "plus de détails", ça rafraîchit ma page mais le texte ne s'affiche pas.

Si jamais tu as le temps d'y jeter un oeil... ce serait bon pour mes nerfs ;-)

//ma connection à la base
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$query_rsActu = "SELECT * FROM actualites ORDER BY annee DESC, mois DESC, date DESC";
$rsActu = mysql_query($query_rsActu, $ConnexionMLV) or die(mysql_error());
$row_rsActu = mysql_fetch_assoc($rsActu);
$totalRows_rsActu = mysql_num_rows($rsActu);

//ma balise de contenu
<div id="achive1">
<?php
//recup du titre quand page appelée par clique sur le lien
if(isset($_GET['titre'])){$titre=$_GET['titre'];}else{$titre="";}

$reponse=mysql_query("SELECT * FROM actualites");
do { ?>
<table width="587" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h1><?php echo $row_rsActu['date']; ?>/<?php echo $row_rsActu['mois']; ?>/<?php echo $row_rsActu['annee']; ?> - <?php echo strtoupper($row_rsActu['titre']); ?>-<a href="<?php echo $_SERVER['PHP_SELF']."?titre=".$row_rsActu['titre']; ?>">Plus de détails</a></h1> </td>
</tr>
<?php
if(isset($_GET['titre'] ) AND $titre == $row_rsActu['texte']) {
//si ce titre a été demandé on affiche
?>
<tr>
<td><p><?php echo nl2br($row_rsActu['texte']); ?></p></td>
</tr>
<?php
}
?>
</table>
<?php } while ($row_rsActu = mysql_fetch_assoc($rsActu)); ?></div>
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
J'ai rectifié mon erreur

<?php
//ma connection à la base
mysql_select_db($database_ConnexionMLV, $ConnexionMLV);
$query_rsActu = "SELECT * FROM actualites ORDER BY annee DESC, mois DESC, date DESC";
$rsActu = mysql_query($query_rsActu, $ConnexionMLV) or die(mysql_error());
$row_rsActu = mysql_fetch_assoc($rsActu);
$totalRows_rsActu = mysql_num_rows($rsActu);
?>
//ma balise de contenu
<div id="achive1">
<?php
//recup du titre quand page appelée par clique sur le lien
if(isset($_GET['titre'])){
	$titre=$_GET['titre'];
}else{
$titre="";
}

//$reponse=mysql_query("SELECT * FROM actualites");// ne sert pa spuique tu as déja la requette plus haut
do { ?>
<table width="587" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><h1><?php echo $row_rsActu['date']; ?>/<?php echo $row_rsActu['mois']; ?>/<?php echo $row_rsActu['annee']; ?> - <?php echo strtoupper($row_rsActu['titre']); ?>-<a href="<?php echo $_SERVER['PHP_SELF']."?titre=".$row_rsActu['titre']; ?>">Plus de détails</a></h1> </td>
</tr>
<?php
if(isset($_GET['titre'] ) AND $titre == $row_rsActu['titre']) {//excuses j'avais fait une erreur la 'texte' au lieu de 'titre'
//si ce titre a été demandé on affiche
?>
<tr>
<td><p><?php echo nl2br($row_rsActu['texte']); ?></p></td>
</tr>
<?php
}
?>
</table>
<?php
 } while ($row_rsActu = mysql_fetch_assoc($rsActu)); ?>
</div>
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
MERCI BEAUCOUP !!!!!!!!!!!!!!

Ca ne fonctionnait pas au début à cause d'un petit espace inattendu qui s'était glissé
où il ne faut pas mais ça y'est !!!

Si je peux encore abuser de ta gentillesse, j'ai encore un petit souci.
J'ai des entrées dans ma table qui ont le même titre... du coup ça me les affiche
tous quand je clique sur l'un... est-ce qu'on ne peut choisir l'id plutôt que le titre ?...

Encore merci :-) !
Messages postés
5358
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
892
Ha bien oui c'est cent fois préférable car l'id surtout si il est en primary key est unique

donc tu remplaces dans le lien et dans le if $row['titre'] par $row['id']
Messages postés
74
Date d'inscription
mardi 21 octobre 2008
Statut
Membre
Dernière intervention
12 février 2014
2
Ce coup ci j'y suis arrivée.
Merci !