Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbankdesign

Einklappen

Neue Werbung 2019

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

  • Datenbankdesign

    Tach, ich möchte ien kleines PHP Script schreiben.
    Dort kann man sich eben registrieren. Dann gibts ne Seite, auf der man auf Links klicken kann - wenn man sag ich mal 5 geklickt hat, darf man sein eigenen reinstellen (für 1 Woche).

    So. Ich möchte das gleich richtig machen und kein Datenbankgewusel machen.
    Also, eine tabelle sollte reichen (oder?)
    id | username | password | linksclicked | linkposted

    Wäre dies optimal? die ersten drei spalten erklären sich von selbst. die vierte dafür, wie viele Links geklickt wurden, und die letzte, wann der eigene link geklickt wurde (unix zeitstempel)

    Dann hatte ich gedacht, wenn man eben ein Link klickt, öffnet sich diese im neuem fenster und GLEICHZEITIG wird eben das in die Datenbank geschrieben. Wie umsetzen? Geht das nur mit Ajax? Und wenn ja, kann mir jemand ein vorgefertigtes Script oder so etwas zu geben? - denn mit Ajax habe ich noch nicht gearbeitet.

    Ist zwar ne PHP Frage, aber: wenn ein Link geklickt wurde, sollte ich dann mit mysql_query den wert auslesen, erhöhen, und dann wieder speichern oder gibt es dafür eine einfacherere Methode?

    Wär schön, wenn ich einige Tipps/Hinweise bekommen könnte
    "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."


  • #2
    Zitat von wernersbacher Beitrag anzeigen
    Also, eine tabelle sollte reichen (oder?)
    id | username | password | linksclicked | linkposted

    Wäre dies optimal?
    Glaube ich nicht.

    Was, wenn du den Nutzern später mal erlauben willst, „Link-Kampagnen“ zu buchen o.ä.? So dass der Nutzer jetzt schon eintragen kann, „für meinen nächsten fünf Klicks oder für die nächste Woche will ich Adresse #1 angezeigt bekommen, für die nächste(n) Adresse #2, ...“


    Dann hatte ich gedacht, wenn man eben ein Link klickt, öffnet sich diese im neuem fenster und GLEICHZEITIG wird eben das in die Datenbank geschrieben. Wie umsetzen? Geht das nur mit Ajax?
    Nein.
    Du kannst auch, statt direkt zu verlinken, erst mal auf ein „Zählscript“ verlinken, statt auf die eigentliche Adresse - die bekommt es dann als Parameter übergeben.
    Im Zählscript zählst du dann den Linklick (Update in der Datenbank), und leitest anschliessend per Location-Header auf die ursprüngliche Adresse um.

    Ist zwar ne PHP Frage, aber: wenn ein Link geklickt wurde, sollte ich dann mit mysql_query den wert auslesen, erhöhen, und dann wieder speichern oder gibt es dafür eine einfacherere Methode?
    Eine einzelne Spalte in einem bestimmten Datensatz kannst du mittels
    Code:
    UPDATE tabelle SET spalte = spalte + 1 WHERE [auswahlbedingung]
    um eins hochzählen.
    (Dazu muss es den Datensatz aber schon geben. Sonst müsste man mit INSERT ON DUPLICATE KEY UPDATE arbeiten.)

    Kommentar


    • #3
      Achso. Danke schonmal - zum ersten:
      Ich brauch sowieso noch eine Tabelle, in der gespeichert wird, dass man diesen Link innerhalb der letztens 24h schon mal geklickt hat!
      Da man DB Einträge ja nicht in eine zelle quetschen sollte und mit Kommatas oder so was trennen sollte: Wie sieht das Design dann aus?

      userid | linkclicked | date

      und dann einträge eben:

      455 | 334 | 1278754699
      455 | 234 | 1278754734
      523 | 334 | 1278754700

      Wär das so sinnvoll?
      (Gibt auch nochmal ne Tabelle für die Einträge und haben ne id)
      "Echte Intellektuelle wie wir sollten ihre Lippen nicht mit Flüchen beschmutzen."

      Kommentar


      • #4
        Zitat von wernersbacher Beitrag anzeigen
        Wär das so sinnvoll?
        Wenn du den Integer-Unixtimestamp noch durch einen der MySQL-Datumstypen ersetzt, dann kann man damit sicher erst mal arbeiten.

        Kommentar

        Lädt...
        X