pb de passage de paramètre dans l'URL

ricardo
Invité n'ayant pas de compte PHPfrance

29 mai 2005, 21:04

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

Mammouth du PHP | 983 Messages

29 mai 2005, 21:06

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 :?:

ricardo
Invité n'ayant pas de compte PHPfrance

29 mai 2005, 21:16

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>";
	}
	?>

Mammouth du PHP | 983 Messages

29 mai 2005, 21:23

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...

ricardo
Invité n'ayant pas de compte PHPfrance

29 mai 2005, 21:24

C'est bon trouvé merci Rami

Il manquait un GROUP BY

Mammouth du PHP | 983 Messages

29 mai 2005, 21:25

De rien ;)

ricardo
Invité n'ayant pas de compte PHPfrance

29 mai 2005, 22:20

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 ?

Mammouth du PHP | 19672 Messages

29 mai 2005, 22:53

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.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: