Avatar billede wicked Juniormester
21. juli 2003 - 20:01 Der er 10 kommentarer og
1 løsning

find i mysql ?

Hey jeg har denne kode der tæller hvor mange hits der har været på siden:

<?

$conn = mysql_connect("HOST", "USER", "PASS");
mysql_select_db("DB");

$query = mysql_query("select hits from hits");

$row = mysql_fetch_array($query);

$hits = $row['hits'];


$ip = $_SERVER["REMOTE_ADDR"];

$hits++;

mysql_query("update hits set hits = '$hits+1'");
mysql_query("insert into hits (ip) values ('$ip')");



echo "Du er bes&oslash;gende nr $hits";

echo "<hr align=left color=red size=15 width= $hits>";

mysql_close($conn);
?>

Nu vil jeg så gerne udbygge den lidt, og lave så hvis ens ip allerede er registeret i databasen så skal det ikke tælle som en besøgende men istedet skrive "Du har været her før". Hvordan klarer jeg det ? Jeg har rodet med at sætte noget if & else op, men det virker bare ik for mig :/
Avatar billede schaefner Juniormester
21. juli 2003 - 20:07 #1
Prøv:
Avatar billede schaefner Juniormester
21. juli 2003 - 20:08 #2
<?php
$conn = mysql_connect('HOST','USER','PASS');
mysql_select_db('DB',$conn);

$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO hits (ip) VALUES ('$ip')");

$hits = mysql_result(mysql_query('SELECT COUNT(*) FROM hits'),0);
echo "Du er besøgende nr $hits<br>";

if (mysql_result(mysql_query("SELECT ip FROM hits WHERE ip='$ip'"),0) > 1) {
    echo 'Du her været her før';
} else {
    echo 'Du har ikke været her før';
}
echo "<hr align=left color=red size=15 width=$hits>";
mysql_close($conn);
?>
Avatar billede schaefner Juniormester
21. juli 2003 - 20:08 #3
hov:
if (mysql_result(mysql_query("SELECT COUNT(*) FROM hits WHERE ip='$ip'"),0) > 1) {
Avatar billede erikjacobsen Ekspert
21. juli 2003 - 20:14 #4
Et ip-nummer tæller jo ikke for én person, hverken på den ene eller den
anden måde - men det ved du vel.
Avatar billede wicked Juniormester
23. juli 2003 - 12:09 #5
Jeg brugte følgende kode:

$ip = $_SERVER["REMOTE_ADDR"];
$hostmask = gethostbyaddr($ip);
$tjekquery = @mysql_query("select * from hits where hostmask like '$hostmask'");
if(mysql_num_rows($tjekquery) == 0) {

KODE

} else {

echo "Du har været her før";

}

erikjacobsen >> Det havde jeg faktisk ik tænkt på, men det er jo rigtigt nok det var også derfor jeg valgte at bruge hostmask istedet ;)

Smid et svar begge to så kan i dele pointene for jeg havde ik fundet ud af det uden jeres hjælp :)
Avatar billede erikjacobsen Ekspert
23. juli 2003 - 12:28 #6
Det gør ingen forskel at bruge gethostbyaddr - det gør blot dit script
mega-langsomt.
Avatar billede wicked Juniormester
23. juli 2003 - 12:35 #7
det gør da en forskel, alle hostmask adresser er da forskellige og jeg kan ik mærke nogen synderlig forskel i farten af mit script ;)
Avatar billede tipsen Nybegynder
23. juli 2003 - 12:57 #8
Det script du havde/har i forvejen virker lidt omstændigt og muligvis forkert - tæller den ikke 2 hits pr. besøg på siden - og tabelstrukturen virker også lidt mærkelig - eller også er det bare mig som ikke forstår det...
Avatar billede schaefner Juniormester
23. juli 2003 - 13:40 #9
tipsen >> Nææh, jeg forstår den skam heller ikke.
Avatar billede erikjacobsen Ekspert
23. juli 2003 - 13:45 #10
Givet et IP-nummer får du altid det samme hostnavn tilbage
med gethostbyaddr. Der er derfor ingen grund til at bruge den.
Den koster netværkstrafik, måske til en DNS server på den
anden side af jorden (hvis dine besøgende kommer derfra),
og det tager pænt mange millisekunder. Nogle gange er den jo
hurtig - det er rigtig nok.
Avatar billede schaefner Juniormester
23. juli 2003 - 13:47 #11
<?php
/*
CREATE TABLE hits (
  ip varchar(100) NOT NULL default ''
) TYPE=MyISAM;
*/
mysql_connect('','','');
mysql_select_db('');

$ip = $_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO VALUES ('$ip')");

$hits = mysql_result(mysql_query('SELECT COUNT(*) FROM hits'),0);
echo "Du er besøgende nr. $hits (Ikke særligt unikt)<br>";

if (mysql_result(mysql_query("SELECT ip FROM hits WHERE ip='$ip'"),0) > 1) {
    echo 'Dette IP-nummer har besøgt siden før';
} else {
    echo 'Et nyt ip-nummer!';
}
mysql_close($conn);
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester