Extraire les lignes quand des champs sont communs

Eléphant du PHP | 124 Messages

04 janv. 2007, 23:10

Bonjour,

Dans ma base de données j'enregistre l'ip des membres

Je souhaiterai extraire les lignes où les ip sont communes vous voir ceux qui utilisent des multicompte.

Merci
Modifié en dernier par neo765 le 29 mai 2008, 23:25, modifié 1 fois.

ViPHP
fab
ViPHP | 2657 Messages

04 janv. 2007, 23:14

utilises GROUP BY sur le champ contenant les ips
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

ViPHP
ViPHP | 1961 Messages

04 janv. 2007, 23:15

Bonsoir,

QQ chose du style (pas testé)
SELECT ip, user, count(ip) AS nbr FROM user_tbl GROUP BY ip HAVING nbr > 1;
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 124 Messages

05 janv. 2007, 01:32

En faite j'ai trouvé comment faire sans utiliser de fonction spécial :
$ipsel1_sql = "SELECT ip, login FROM membres";
$ipsel1 = mysql_query($ipsel1_sql);
while ($row = mysql_fetch_assoc($ipsel1)) {
$ip = $row["ip"];
$login = $row["login"];
//--
if ($ip==TRUE)
{
$ipsel2_sql = "SELECT ip, login FROM membres WHERE (ip='$ip') AND (login!='$login')";
$ipsel2 = mysql_query($ipsel2_sql);
while ($row = mysql_fetch_assoc($ipsel2)) {
$var_login2 = $row["login"];
$var_ip2 = $row["ip"];
echo "$var_login2 --> $var_ip2<br>";
}
mysql_free_result($ipsel2);
}
//--
}
mysql_free_result($ipsel1);
Modifié en dernier par neo765 le 29 mai 2008, 23:25, modifié 1 fois.

ViPHP
fab
ViPHP | 2657 Messages

05 janv. 2007, 02:32

C'est vrai tu peux aussi faire comme ça mais regarde un peu le nombre de requete sql que tu es obligé de faire pour obtenir le même résultat!
Derriere notre réponse il y un aspect de performance ou du moins d'optimisation
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 124 Messages

05 janv. 2007, 03:15

C'est important d'optimiser le nombre de requete sql ??
Modifié en dernier par neo765 le 29 mai 2008, 23:25, modifié 1 fois.

Eléphant du PHP | 86 Messages

05 janv. 2007, 11:40

pour des petites requetes comme celle-la non (sauf si tu as beacoup de membres) mais cela permet surtout de ne pas encombrer ton serveur et le saturer
Comme dit le proverbe chinois:"Si tu parles a tes chaussons.....C'est que tu es le Roi des C..." :D

Eléphant du PHP | 124 Messages

05 janv. 2007, 18:06

En suivant vos conseils j'ai utilisé la fonction GROUP BY
$ipsel1_sql = "SELECT ip, count(ip) AS nbr FROM membres GROUP BY ip HAVING nbr > 1";
$ipsel1 = mysql_query($ipsel1_sql);
while ($row = mysql_fetch_assoc($ipsel1)) {
$ip = $row["ip"];
//--
//--
if ($ip==TRUE)
{
$ipsel2_sql = "SELECT login FROM membres WHERE ip='$ip'";
$ipsel2 = mysql_query($ipsel2_sql);
while ($row = mysql_fetch_assoc($ipsel2)) {
$login = $row["login"];
//--
echo "$login --> $ip<br>";
}
mysql_free_result($ipsel2);
}
}
mysql_free_result($ipsel1);