Extraire les lignes quand des champs sont communs

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Extraire les lignes quand des champs sont communs

par neo765 » 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);

par tinou » 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

par neo765 » 05 janv. 2007, 03:15

C'est important d'optimiser le nombre de requete sql ??

par fab » 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

par neo765 » 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);

par Ajoloca » 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;

par fab » 04 janv. 2007, 23:14

utilises GROUP BY sur le champ contenant les ips

Extraire les lignes quand des champs sont communs

par neo765 » 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