while ($res && $da!=1) // — abbruch, wenn gefunden
a) kann es sein, dass du ne endlosschleife gebaut hast? weil
$res in „while (…“ nicht mehr angefasst wird…
der soll ja auch alle felder durchgehn, bis er was findet!
wenn ich 100 einträge hab, dann muss er halt 100 einträge
durch, dann bricht er ab, oder seh ich das falsche?
hast du dir denn mal $res ausgeben lassen, kann es sein, dass $res immer das selbe erste element deines resultsets war? du haettest naemlich irgendwo schrieben muessen while($res = mysql_fetch_array($qry)) oder was in der art. dein $res ist und bleibt die erste zeile deines resultsets und wird nicht mehr geaendert, bleibt also so lange true, bis $da 1 wird, weil $ip aber immer gleich bleibt, gibt es eine endlosschleife, wenn die erste ip aus deinem resultset nciht die $userip ist.
b) kann es sein, dass du mit while das ergebnis einer query
duchsuchst? wer sowas macht, dem gehoert der account zur db
weggenommen. frag doch direkt danach, dafuer sind dbs naemlich
gebaut:
$str="SELECT * FROM user_ips where ip="$ip" ORDER BY
time DESC limit 1";
wenn du schon das orakel fragen kannst, wer aus deinem
schuesselchen gegessen hast, dann tu das und frag nicht "nenne
mir alle - ich schau selbst nach ob sie es waren"
jo, das hab ich mal probiert, aber irgendwie hat das ganze
nicht geklappt, denn wenn die ip nich drin steht schmeisst er
mir erstmal ne fehlermeldung, die ich abfangen muss. und dann
hat er, auch wenn se da is, sie immer wieder neu eingetragen!
der hat die ip einfach nich erkannt!
weil du immer schriebst:
$str="SELECT \* FROM counter WHERE id=1";
$qry=mysql\_query($str);
$res=mysql\_fetch\_array($qry);
if ($res)
du musst aber schon $qry pruefen, ob es ein resultset hast, weil wenn er nix findet, ist da nix… und das gibt nen fehler
ich kann dir auch die std-benamung ans herz legen, so zum verstaendnis und so:
$str=„SELECT * FROM counter WHERE id=1“;
$sql (od auch $qry) = „SELECT * FROM counter WHERE id=1“; //das ist naemlich die query
$qry=mysql_query($str);
$res = mysql_query($qry); //weil du ads result einer query bekommst
$res=mysql_fetch_array($qry);
if ($res)
while ($row = mysql_fetch_array($res)) //weil du eine reihe aus dem resultset, dass du dir als 2dim. array vorstellen aknnst erhaelst. und das so lange, wie du zeilen drin hast.
generell: dein ansatz ist mist - sorry
schau mal, du kannst fast alles die db machen lassen:
create table iptabelle (ip bigint not null PRIMARY KEY,lastacc
bigint unsigned not null);
create table counter ( datum date primary key,cnt bigint
unsigned not null);
wieso brauch ich da nen bigint?
also wenn ich mal mehr besucher hab, dass es nen normales int
sprengt… na hallo…
stoer dich nicht daran… kannst natuerlich auch nen kuerzeren nehmen.
$ip = ip2long(ipadresse)
//alte ips interessieren mich nicht
delete from iptabelle where lastacc