[Résolut] prebléme pour enlever les doublons

Eléphant du PHP | 418 Messages

11 janv. 2011, 06:23

Bonsoir à tous

J'ai de nouveau un soucis

En effet j'aimerais enlever les doublons d'une liste de membre

En fait j'ai créer une section de page personnelle, et j'utilise un select * from pour sélectionner les pages
Ensuite j'utilise un autre select * from mais pour la table des membres avec en condition que le login soit le même

ça fonctionne bien, mais je me retrouve avec des doubles (ou plus) en fonction du nombre de page

Je ne sais pas comment faire, pour n'afficher que les membres une fois, sachant que j'ai une pagination qui viens ensuite pour les pages

(j'espère que je suis compréhensible ^^)

Voici le code :
<?php
echo 'Liste des pages personnelles des membres: <br />';
	$sql1=mysql_query("SELECT * FROM PagePerso") or die(mysql_error());
	while($query1=mysql_fetch_array($sql1))
	{
	$sql="SELECT * FROM Membres WHERE Login='".$query1['Login']."' ORDER BY Prenom ASC";
	$req=mysql_query($sql) or die(mysql_error());
	while($query=mysql_fetch_assoc($req))
	{
	$url=$query['Nom'].' '.$query['Prenom'];
	$id=$query['Id'];
	echo '<a href="index.php?m=afficheperso&n='.$id.'">'.$url.'</a><br />';
	}
	//trim(array_merge(array_unique(array_merge(
	}
?>
Avec ceci j'affiche par exemple

Nom Prenom
Nom Prenom2 (sachant que les membres peuvent être de même famille ^^ c'est pas ici le problème)
Nom Prenom2 (Je devrais pas avoir celui ci)
Nom1 Prenom (La c'est normale car le nom n'est pas le même)
Nom2 Prenom
etc.....

J'aimerais afficher

Nom Prenom
Nom Prenom2
Nom1 Prenom
Nom2 Prenom
etc.....

Merci de votre aide.

Cordialement
Modifié en dernier par Fre3z69 le 11 janv. 2011, 10:52, modifié 1 fois.

ViPHP
ViPHP | 2291 Messages

11 janv. 2011, 09:17

Salut

Essaye ceci
 $sql = ' SELECT t1.Login, t2.Nom, t2.Prenom, t2.Id 
                 FROM PagePerso AS t1, Membres AS t2 
                 WHERE t2.Login = t1.Login 
                 GROUP BY t1.Login';
       $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
       
       while($row = mysql_fetch_assoc($req))
       {
	       	$url = $row['Nom'].' '.$row['Prenom'];
	        $id  = $row['Id'];
	        echo '<a href="index.php?m=afficheperso&n='.$id.'">'.$url.'</a><br />';
       	
       {          
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 418 Messages

11 janv. 2011, 10:51

Cela fonctionne merci

Par contre pour ma science personnelle et celle d'autre utilisateurs, peux tu m'expliquer ce que tu as fait, comment ca s'appelle?

Merci de ton aide

Cordialement

ViPHP
ViPHP | 2291 Messages

11 janv. 2011, 11:05

Un simple GROUP BY
Et pour optimiser j'ai supprimer une requête.

:)
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 418 Messages

13 janv. 2011, 02:50

Merci ^^

c'est ce qu'on appelle des requêtes multi tables??

Merci de ton aide

Cordialement

ViPHP
ViPHP | 2291 Messages

13 janv. 2011, 12:52

Plutôt des jointure de table INFO ICI
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.