Avatar billede nbj1 Praktikant
16. marts 2010 - 09:13 Der er 16 kommentarer

finde alle ip i mysql

jeg vil gerne finde alle ip i en database, og kommet frem til dette kode, men af en eller anden grund bliver der kun tjekket på en ip ikke alle ?

$tjek_ip = "SELECT ip FROM online" or die(mysqli_error());

$r = mysqli_query($link, $tjek_ip)  or die("Error: ".mysqli_error($link));
while ($row = mysqli_fetch_array($r,MYSQLI_ASSOC)){
$antal = $row['ip'];
echo "$antal";
}
Avatar billede showsource Seniormester
16. marts 2010 - 11:34 #1
Prøv med

$tjek_ip = "SELECT ip FROM online";
Avatar billede nbj1 Praktikant
16. marts 2010 - 11:42 #2
min tjek_ip linie virker fint nok, jeg har forbindelse til databasen
det mit gennemløb af poster der fejler.
Avatar billede showsource Seniormester
16. marts 2010 - 13:52 #3
Men din tjek_ip linie er forkert !
Du skal ikke ha' or die() med !
Avatar billede showsource Seniormester
16. marts 2010 - 13:53 #4
Du kan evt. prøve i toppen af scriptet, at bruge:

ini_set("error_reporting", E_ALL);

for at få vist samtlige fejlmeddelser.
Avatar billede nbj1 Praktikant
16. marts 2010 - 14:01 #5
ok men det var mig der havde lavet ged hehe
det skal naturligvis være MYSQLI_NUM da det er et numerisk felt
while ($row = mysqli_fetch_array($r,MYSQLI_ASSOC)){
$antal = $row['ip'];
echo "$antal";
}
echo "$antal"; skriver nu alle ip ud meeen
har så prøvet med
if ($antal != $ip) {
echo "sammenlign ip";
}
men det virker ikke helt, skulle give, hvis antal er forskelig med hvad jeg har ok så skal der oprettes/udskrive min echo
Avatar billede nbj1 Praktikant
16. marts 2010 - 14:55 #6
hvis jeg er inde i while løkken samlingner hver enkel med eksisterende ip
det fint nok, men vil så oprette en ny post hver gang den ikke er ens
if ($antal != $ip) {
echo $antal."er forskellig med".$ip;
}else{
echo $antal."er ens med" .$ip;

hvis if sætningen er udenfor løkken samligner den kun med første post
egenligt logisk nok men det der gerne skulle ske, den samligner alle post med den nye ip hvis den er ny lægges den i databasen, hvis den ikke er ny skal den kun opdatere dato.
Avatar billede showsource Seniormester
16. marts 2010 - 15:29 #7
Hvis ip i tabel er UNIQUE ( kun en af samme ), kan du:

REPLACE INTO online ('".$_SERVER["REMOTE_ADDR"]."',NOW())

Og du har så kun ip og dato i tabel.

Du behøver så ikke at hente ip'er, og derefter løbe dem igennem, hvis du blot vil opdatere en given ip's sidste hit.

Men er ikke helt sikker på hvad du vil ?
Avatar billede showsource Seniormester
16. marts 2010 - 15:31 #8
"Og du har så kun ip og dato i tabel."

Altså ip og dato i formatet YYYY-MM-DD HH:MM:SS
Avatar billede nbj1 Praktikant
16. marts 2010 - 15:37 #9
jeg har id fortløbne, dato, antalbesøg fra samme ip og ip i min tabel
Avatar billede nbj1 Praktikant
16. marts 2010 - 15:41 #10
det der iritere mig er jeg skal arbejde med mysqli i stedet for mysql som jeg var vant med, det giver underlige ting
fatter ikke man ikke kan bruge begge dele
Avatar billede nbj1 Praktikant
16. marts 2010 - 15:58 #11
$ip = "124.115.1.9"; //test ip er ikke i tabelen, hvis jeg bruger ip ender på 8 som findes opdateres databasen 

/* tjekker om brugeren allerede findes i tabellen. */
$tjek_ip = "SELECT * FROM online WHERE IP = '$ip'" or die(mysqli_error());

$r = mysqli_query($link, $tjek_ip)  or die("Error: ".mysqli_error($link));

while ($row = mysqli_fetch_array($r,MYSQLI_NUM)){
$antal = $row[3];
$now = date("Y-m-d H:i:s");
//echo $ip;
if ($antal == $ip) {
mysqli_query($link, "UPDATE online SET time='$now', antal_b=antal_b +1 WHERE ip='$ip'") or die(mysqli_error());
echo $antal."er ens med" .$ip;
}else{
echo  $antal."er ikke med" .$ip;// her skulle så indsættes
}
Avatar billede nbj1 Praktikant
16. marts 2010 - 16:00 #12
ok mangler lige en } på while løkken
Avatar billede nbj1 Praktikant
16. marts 2010 - 16:11 #13
der hvor det går galdt er i if ($antal == $ip) da hvis de ikke er ens kommer jeg aldrig til else
Avatar billede nbj1 Praktikant
16. marts 2010 - 16:57 #14
ok har fundet løsningen tak for hjælpen gi et svar for point
Avatar billede showsource Seniormester
17. marts 2010 - 05:33 #15
Jeg er stadig lidt forvirret

Hvad blev løsningen ?
Avatar billede nbj1 Praktikant
17. marts 2010 - 07:27 #16
nådada jammen lavede en insert udenfor løkken at hvis antal var tom så tilføj i databasen, grunden til det i første omgang ikke virkede var at date var inde i løkken og insert udenfor så der kom ikke noget i databasen.
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
Kurser inden for grundlæggende programmering

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