Daten von Datenbank/Table in Array laden

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Daten von Datenbank/Table in Array laden

    Hallo Community,
    Ich hab ne Anfängerfrage

    ich schreibe gerade ein skript, dass auf eine vernünftige Auswertung der IP basiert!

    PHP Code:
    function checkip(){
                
                
    $ip=getenv("REMOTE_ADDR");
                
    $sql='SELECT ips FROM visiter'
                
    $result mysql_query($sql) or die(mysql_error()); 
                
    $data mysql_fetch_array($result);
                
    var_dump($data);
                if (
    in_array($ip$data)) {
                    echo 
    "blablub";
                    
    }
                echo 
    $ip;

    so zur Erklärung:

    Ich ermittle erst die IP des Besuchers, der das Skript aufruft.
    Dann wähle ich das Table aus der DB, in der die bereits vorhandenen IPs eingetragen sind...
    Aus diesem Table werden (sollen) die IPs in ein Array geladen! Danach gebe ich per Var_dump zum überprüfen das Array aus und muss leider feststellen, dass das Array 2 Sätze enthält, leider anstatt die erste IP und die zweite IP , zweimal die erste IP

    Kann mir jemand erklären wo der denkfehler steckt ?

    Danke

    ZeroN

  • #2
    da du mehrere Datensätze zurückbekommst, musst du diese in einer Schleife abholen.

    PHP Code:
    while ($res mysql_fetch_assoc($result)) {
         
    $data[] = $res;

    anstatt dem hier

    PHP Code:
    $data mysql_fetch_array($result); 
    ich glaube

    Comment


    • #3
      wozu holst du denn die gesamte spalte in ein array? was soll damit passieren?
      doch nicht etwa prüfen, ob die ip des aufrufers nicht bereits in der db steht?

      Comment


      • #4
        doch so sollte es laufen

        aber ich kenn ja den meister der hat bestimmt wieder ne bessere idee

        Comment


        • #5
          ja, so wie du es machst, ist es absolut suboptimal. stell dir vor, die tabelle hat 1 mio. zeilen. willst du immer ~15 mb in den speicher laden, um nach einer ip zu suchen?

          lass es von deiner datenbank machen: sende SELECT ... WHERE ip = aktuelle_aufrufer_ip und werte mit mysql_num_rows, wieviele ergebnisse die anfrage erzielt hat.

          Comment


          • #6
            ok vielen dank ich werde es morgen (bzw. heute mittag mal testen )

            mfg

            Comment

            Working...
            X