Page 1 sur 1

pb de passage de paramètre dans l'URL

Posté : 29 mai 2005, 21:04
par ricardo
Bonsoir,

Je possède une table medias composée :

- id (int) en autoincrémentation
- date
- titre : lien qui va etre afficher pour accèder aux rubriques
- contenu : contenu de l'enregistrement
- rubrique : champs de passage dans l'URL

Mon probleme est lorsque que j'ai deux enregistrements appartenant à la meme rubrique, mon lien (champ titre) s'affiche deux fois et ainsi de suite.
Comment faire pour qu'un seul lien s'affiche par rubrique meme si j'ai plusieurs enregistrements de la meme rubrique ?

Merci

Posté : 29 mai 2005, 21:06
par rami
C'est difficile de répondre sans code, mais à priori je te dirais de rajouter une clause GROUP BY rubrique dans ta requête ;)
Par contre, quel est le rapport entre le titre du post et ta question :?:

Posté : 29 mai 2005, 21:16
par ricardo
Voila mon code
<? if(!isset($_GET["id"])){	$_GET["id"]="";}
$medias=$_GET["id"];


$query_medias="SELECT * FROM medias WHERE id='$medias'";
$result_medias=mysql_query($query_medias);

 
while($val_medias=mysql_fetch_array($result_medias)){ ?>
<?
$query_medias="SELECT * FROM medias ORDER BY id DESC";
$result_medias=mysql_query($query_medias);
?>

<? while($val_medias=mysql_fetch_array($result_medias)){
	echo "<div><a href=\"cadre_medias_ok.php?id=".$val_medias["id"]."\">".$val_medias["titre"]."</a></div>";
	}
	?>

Posté : 29 mai 2005, 21:23
par rami
Je ne saisis pas bien la structure de ta table. A quoi sert le champ rubrique?

Sinon essaies de modifier tes requetes:
$query_medias="
SELECT * 
FROM medias 
WHERE id='$medias'
GROUP BY titre";

$query_medias="
SELECT * 
FROM medias 
GROUP BY titre
ORDER BY id DESC"; 
Mais a priori, je dirais que la structure de ta table n'est pas optimale...

Posté : 29 mai 2005, 21:24
par ricardo
C'est bon trouvé merci Rami

Il manquait un GROUP BY

Posté : 29 mai 2005, 21:25
par rami
De rien ;)

Posté : 29 mai 2005, 22:20
par ricardo
Encore un petit souci :

Maintenant j'affiche qu'une fois la rubrique meme si il y a plusieurs enregistrement dans cette rubrique.
Quand je clique sur une rubrique tous les enregistrements s'affichent les uns sous les autres alors que moi j'aimerais afficher un enregistrement à la fois.

Est-ce possible et comment faire ?

Posté : 29 mai 2005, 22:53
par Cyrano
C'est toujours possible, le problème, c'est de savoir à quel endroit tu veux limiter.

Tu peux le faire au niveau de la requête en ajoutant un LIMIT 0, 1 par exemple et avoir sur ta page un lien contenant une variable qui ferait varier le point de départ qui au lieu d'être 0 pourrait être 3 ou 5 ou autre chose;

Autre option, tu stokes les résultats dans un tableau et tu utilises toujours un paramètre dans un ien pour faire afficher les suivants ou précédents pour aller chercher $tableau[0] ou $tableau[12] ou $tableau[3].

Dans les deux cas, ça recharge la page, mais à chaque fois tu récupère s'il existe le paramètre de choix. S'il n'existe pas, pour éviter une erreur, tu définis une valeur par défaut.