Page 1 sur 1

count ceci mais sans cela

Posté : 17 nov. 2005, 05:20
par auclairp
Voici ma ligne de commande pour demander de compter les champs d'une table, mais je voudrais exclure 3 adresse ip du comptage, donc voici ce que j'ai actuellement
$retour1 = mysql_query("SELECT COUNT(*) AS stat FROM logs WHERE page='/tutorat/firefox/quebec.php' ");
Et voici les 3 adresse
201.234.223.234
32.332.112.234
55.355.234.123

Je ne peux quand même pas faire un
$retour1 = mysql_query("SELECT COUNT(*) AS stat FROM logs WHERE page='/tutorat/firefox/quebec.php' AND ip=PAS'123.123.123.123' ");

Posté : 17 nov. 2005, 09:30
par Cyrano
Pourquoi pas ? COnstruis la requête dynamiquement avec un tableau contenant les ip à exclure de la recherche. Proposition:
<?php
$exclure = array("201.234.223.234",
"32.332.112.234",
"55.355.234.123");


$sql = "SELECT COUNT(*) AS stat ".
       "FROM logs ".
       "WHERE page='/tutorat/firefox/quebec.php' ";
foreach($exclure as $ip)
{
    $sql .= "AND ip <> '". $ip ."' ";
}
$retour1 = mysql_query($sql);
?>

Posté : 17 nov. 2005, 14:05
par zeus
Encore mieux, avec implode, il construit la liste automatiquement à partir du tableau
<?php
$exclure = array("201.234.223.234",
"32.332.112.234",
"55.355.234.123");

$str_exclure = implode(", ", $exclure);


$sql = "SELECT COUNT(*) AS stat ".
       "FROM logs ".
       "WHERE page='/tutorat/firefox/quebec.php'
           AND ip NOT IN ('.$str_exclure.')";
$retour1 = mysql_query($sql);
?>

Posté : 17 nov. 2005, 19:58
par mario
Encore mieux, avec implode, il construit la liste automatiquement à partir du tableau
=D> je me note ça quelque part :D

Posté : 17 nov. 2005, 20:07
par albat
Modération :
Ah la la... Deux modérateurs répondent à ce sujet
et pas un ne s'aperçoit qu'il n'est pas dans le bon forum !

Allez, hop :arrow: Bases de données !

Vous baissez, les gars. Vous baissez... :lol: