Problem mit dem auslesen aus der Datenbank

  • Hey,
    also ich habe einen Datenbank in der werden die referrer seiten gespeichert und für jede seite gibt es eine zeile und 4 spalten einmal das datum vom letzten geschickten besucher, dann wieviele besucher sie geschickt hat, den seitennamen und eben eine spalte in der alle ips gespeichert werden die von dieser seite aus geschickt werden, jeweils mit dinem ; abgetrennt
    z.B.: 87.122.250.211;217.187.17.176;87.123.78.164
    nun möchte ich mir eine tabelle ausgeben lassen die für jede IP die in dieser Datenbank gespeichert ist anzeigt wie oft die IP vorhanden ist und von welchen seiten die IP schon gekommen ist.
    Ist das möglich oder MUSS ich einfach eine neue datenbank erstellen in der dass dann so abgespeichert wird?
    Denn ich will eigentlich einen weg finden um eine datenbank zu haben und mir statistiken für die jeweilige Ip bzw refseite zu bekommen also wie oft usw..
    soweit bin ich bisjetzt aber nja ich komme eben nicht weiter, da ich nicht weiss wie ich die gesplitteten ips verarbeiten kann=(

  • Eine neue Datenbank nicht, aber eine neue Tabelle wäre ratsam. Stichwort: Normalisierung

  • so hab jetzt alles in ne neue datenbank geschrieben und num möchrte ich es so ausgeben, dass mann zu jeder ip die statistik bekommt.
    dazu lasse ich die refs zu der ip auslesen das klappt auch aber jetzt will ich die einzelnen refs aufsplitten durch explode() mit hilfe einer while schleife allerdings zeigt e rmir immer error 500 an?
    wenn ich es ohne while schleife exploden lasse dann geht es auch allerding auch nur für einen referrer den ich dann hier $ref[$i] definiert habe aber ich will es ja haben dass es alle refs ausgibt=(

  • PHP
    $i=0;
            while ($ref = explode(";", $row->refs)) {
                echo "<tr>
                        <td>$ref[$i]</td>
                        <td>$row->datum</td>
                        </tr>";
                $i+1;
            }


    Was soll denn diese while-Schleife bewirken? Übrigens, $i+1 bringt gar nichts. Entweder musst Du draus $i+=1 oder $i++ machen. Ansonsten bleibt $i immer 0.

  • na dass ich eben alle refs zu dieser IP bekomme die alle in einer variable stehen und durch ein ; getrennt sind
    und dass $i+1 ist das selbe wie $i++ zumindest hat es bei mir an anderer stelle schon so funktioniert;) is ganz normales addieren^^

    falls jemand ja noch nen anderen lösungsvorschlag hat wie ich das sonst machen soll..darf er mir das gern emitteilen=)

  • Hast Du es schon mal mit einer foreach bzw. for-Schleife probiert. Der Error500-Fehler deutet i.d.R. auf Berechtigungsfehler hin.
    Bezügl. $i+1: Wo Dus sagst, ich habe es auch schon mal so gesehen, aber bloß vergessen, dass es so geht.

    Wenn ich dich richtig verstanden habe, dann köntest Du es doch so machen.

    PHP
    $ref = explode(";", $row->refs);
    for($i = 0; $i<count($ref); $i++)
    {
      echo "<tr> 
                        <td>$ref[$i]</td> 
                        <td>$row->datum</td> 
                        </tr>";
    }


    Mit einer foreach-Schleife wäre es ähnlich.

  • Ahhhhhhh!!!! Du hast dich nicht in Sachen Normalisierung informiert!!! Die IP's mit Semikolon getrennt in eine Tabellenspalte zu packen ist extrem schlecht!!!

  • Normalisiert gesehen ist das natürlich nicht so schön. Besser währe es, wenn IP & Datum in eine Extra-Tabelle gespeichert werden und Du sie dort durch per ID dem Referrer zuordnest.