Avatar billede xpresand Nybegynder
04. maj 2007 - 19:47 Der er 2 kommentarer og
1 løsning

Kan ikke få Array'en til at tjekke ordenligt

Hej, jeg har brug for hjælp til denne kode.
Det at den skal er at den skal hente de Ip-adresser som er i databasen Ipadresser. Og så skal Array'en tjekke om de Ip-adresser at den har hentet om de findes i de forum indlæg at den henter.

Hvis Ip-adressen findes i et af indlæggene skal den vise at personen er online og hvis Ip-adressen ikke er i indlæggene skal den vise at personen er offline.

Og det virker nogenlund.
Det at der ikke virker er at hvis der er mere en 1 forskellig Ip-adresse så tjekker den kun det ene af Ip-adresserne og ikke dem alle.

Og et andet problem er at, hvis det f.eks. er personen Jonathan der er online, viser den ikke at Jonathan er online, men personen er der over Jonathan istedet for.

Nogen der kan hjælpe?..(Ved godt min kode er rodet, men det er lige meget.)

<?
include'connect.php';
?>


<?php

//henter ip adresser
$q = mysql_query("SELECT * FROM Ipadresser ORDER BY Id") or die(mysql_error());
$r = mysql_fetch_assoc($q);

//henter beskeder
$query = mysql_query("SELECT * FROM forumskriv ORDER BY Id") or die(mysql_error());
while($row = mysql_fetch_assoc($query))
{
if(in_array($row["ip"], $r))
{
echo "<tr>

                  <td height='46'  align='left' bordercolor='#000000'><br />

                      Navn: $navn <br />
<img src='http://annapihl.frac.dk/billeder/online.jpg' alt='$navn er online'>
                      <br /></td>

                  <td align='left' bordercolor='#000000'>$tekst<br><br>Tilf&oslash;jet den: $dato</td>

                </tr><br><br>--------------------------------------------------------";
}
else
{
echo"
<tr>

                  <td height='46'  align='left' bordercolor='#000000'><br />

                      Navn: $navn <br />$a
<img src='http://annapihl.frac.dk/billeder/offline.jpg' alt='$navn er offline'>
                      <br /></td>

                  <td align='left' bordercolor='#000000'>$tekst<br><br>Tilf&oslash;jet den: $dato</td>

                </tr><br><br>--------------------------------------------------------";}
?>



<?
$hvem = mysql_query("SELECT * FROM forumskriv ORDER BY Id") or die(mysql_error());
while ( $a = mysql_fetch_assoc($hvem))
$ip = $row[Ip];
$tekst = $row[tekst];
$navn = $row[navn];
$dato = $row[dato];

}
?>
Avatar billede erikjacobsen Ekspert
04. maj 2007 - 19:56 #1
Efter linien

$q = mysql_query("SELECT * FROM Ipadresser ORDER BY Id") or die(mysql_error());

skal du lave et gennemløb, der gemmer alle IP-adresser i et array (der er flere måder).
Så kan du nemlig med in_array (eller tilsvarende) se om ip-adresssen er registeret eller ej.

Noget helt andet: kan en person have flere IP-adresser? Hvad sker der i dit system så?
Avatar billede xpresand Nybegynder
04. maj 2007 - 20:02 #2
Altså jeg er ikke helt vild god til PHP, men jeg gør sådan at hver gang en person går ind i forummet gemmes personens Ip-adresse i databasen i 3 min.

Der er ikke noget med at personerne skal logge ind eller noget. Og jeg ved godt at det med status, om de er online eller Offline ikke vil kunne være 100% perfekt.

Kan du evt skrive koden til det gennemløb, for har ikke prøve sådan noget med array's.
Avatar billede xpresand Nybegynder
28. oktober 2007 - 10:44 #3
lukker
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