Daten von Datenbank/Table in Array laden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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

    Kommentar


    • #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?

      Kommentar


      • #4
        doch so sollte es laufen

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

        Kommentar


        • #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.

          Kommentar


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

            mfg

            Kommentar

            Lädt...
            X