[PHP] Denkhilfe Ratingsystem

Dieses Thema im Forum "Webentwicklung" wurde erstellt von naitsgang, 14. Oktober 2012 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 14. Oktober 2012
    Zuletzt bearbeitet: 14. Oktober 2012
    Denkhilfe Ratingsystem

    Hey Rusher,
    ich versuche gerade mir etwas PHP beizubringen und hab ein kleines Problem. Ich möchte gerne ein Ratingsystem erstellen. Aus der Datenbank sollen insgesamt 6 Tabellendaten abgefragt werden die dann dementsprechend formatiert dastehen. Und das immer untereinander.

    Also ID 1, inhalt, autor, whatever
    select (ja, nein), submit(?)

    ID 2, inhalt, autor, whatever
    select (ja, nein), submit(?)

    Das ist ja an sich kein Problem, aber nun möchte ich, dass ein User das ganze bewerten kann. Vereinfacht mit "ja" oder "nein".
    Wie kann ich das realisieren? Ein Submit button ist zwar vorhanden, aber dann wird doch jedes Formular auf der Seite abgeschickt oder? Kann ich da eventuell mit iframes o. ä. Arbeiten?

    Bitte erklärt es mir ohne PHP code, damit ich nicht in Versuchung komme das ganze nur raus zu kopieren. Ich will ja was lernen

    Natürlich gibts für hilfreiche Antworten immer ne BW!

    lg naitsy
     
  2. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Worum genau gehts dir? Allein das "Abschicken" kannst du problemlos mit JavaScript realisieren. Sendest einfach bei Klick einen Request an eine PHP-Datei
     
    1 Person gefällt das.
  3. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Puuh Wird dafür javascript benötigt? Mir geht es darum, dass ich die Beiträge, die untereinander angezeigt werden, jeweils einzeln mit einem Submit button abschicken kann, ohne, dass dann die ganze Seite neu geladen wird, oder alle Formulare auf einmal abgeschickt werden.

    BW ist natürlich raus
     
  4. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Ja, dafür brauchst du JavaScript. Kannst das submit-Event abfangen und dann die Daten an eine PHP-Datei übertragen, die das dann in die DB speichert zB. Mit jQuery (o.ä.) ist das ziemlich simpel
     
  5. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Ok, danke für die Hilfe Das ist jetzt niederschmetternd, da ich mich zuerst mit PHP beschäftigen wollte und ich erst, wenn ich die Grundlagen verstehe, wollte ich mich an Java heranwagen. Das wäre sonst ein bisschen zu verwirrend für mich, wenn ich das alles durcheinander mache. Wäre es dann möglich, die ergebnisse aus der DB jeweils einzeln auf einer Seite darzustellen und dann jeweils bei einem submit das nächste ergebnis zu laden?

    Beispiel:

    ID 1 + inhalt
    ja,nein
    submit -> es wird auf ID 2 weitergeleitet
    ?

    Oder hättest du einen Vorschlag, der ohne js auskommt?
     
  6. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Java ungleich Javascript

    Sind es angemeldete Benutzer oder "Gäste", die Bewerten könne?

    Es wäre nämlich möglich, die "Submit-Buttons" als Link zu machen.
    Somit könntest du auf eine 2. Seite verweisen und Parameter mit übergeben.
    Wie z.B. "Id des zu bewertenden Artikels, Benutzer ID, Ja/Nein Vote" etc.

    Dann bräuchtest du kein Javascript und jeder Submit Button würde eine 2. Seite öffnen "target=_blank" dem Link mitgeben.
     
    1 Person gefällt das.
  7. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem



    Sind angemeldete Benutzer. Mit extra Tabelle "User"

    Klingt interessant. Ist schon eher etwas was ich mir vorstellen könnte
    Wie realisier ich es mit einem Link, dass die ID2 eine extra "site" ist?

    Wäre natürlich perfekt!

    BW ist raus
     
  8. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Die 1. Seite würde sich halt nicht aktualisieren, aber man könnte erst einmal komplett "voten".

    Parameter Übergeben/Abfragen -> $_GET

    Link neue Seite öffnen "target=_blank"
     
  9. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Könntest du mir eventuell doch ein Beispiel geben wie ich es hinbekomme, dass aus ID 2 der Datenbank ein vote.php?id=2 wird? mit nur diesem Formular auf der Seite wird?
    Wäre dir unendlich dankbar
     
  10. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Du musst an sich nur einen Link einbauen mit den verschiedenen Variablen.

    Code:
    uid = Benutzer ID
    iid = ID des zu bewertenden Artikels
    vote = 1->gut / 0->schlecht
    
    <a href="vote.php?uid=123&iid=15&vote=1" target="_blank">gut</a>
    <a href="vote.php?uid=123&iid=15&vote=0" target="_blank">schlecht</a>
    
    In der vote.php wird die Variable folgend "abgefangen".
    Code:
    function getGET($str)
    {
     $var = $_GET[$str]
     if(is_int($var))
     {
     return $var;
     }
     else
     {
     return preg_replace("%[^0-9]%", "", $var);
     }
    }
    $uid = getGET('uid');
    $iid = getGET('iid']);
    $vote = getGET('vote');
    
    Die Variablen sind alles "integer", da es so einfach ist Sicherheitslücken zu vermeiden.

    Ein Formular brauchst du nun nicht mehr.
     
  11. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Kleine Ergänzung:
    Parameter können nie vom Typ int sein, das sind alles strings.
    Zudem fehlt eine Überprüfung, ob der Wert wirklich eine Zahl ist, da der Reguläre Ausdruck nur stumpf alles entfernt was nicht passt.

    Code:
    0999
    Käme durch den Regulären Ausdruck, ist aber nicht brauchbar.

    So würde ich es machen:
    PHP:
    if (!isset( $_GET [ 'uid' ],  $_GET [ 'iid' ],  $_GET [ 'vote' ]))
      exit(
    'es fehlen parameter' );

    $uid   = (int)  $_GET [ 'uid' ];
    $iid   = (int)  $_GET [ 'iid' ];
    $vote  = (bool)  $_GET [ 'vote' ];

    assert ( $uid );
    assert ( $iid );

    // in datenbank eintragen ...
     
    1 Person gefällt das.
  12. 14. Oktober 2012
    Zuletzt bearbeitet: 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Danke du bist der beste. Dann werde ich einfach die uid, iid und vote an die Datenbank übergeben müssen, oder?

    Nur wie bekomme ich dann die nächste id hin?

    einfach mit einer whileschleife und $iid++
    ?

    würde dich gerne nochmal bewerten, geht aber natürlich heute noch nicht

    @murdoc, danke dir aber da habe ich die gleiche Frage ^^ einfach mit while und iid++?

    //hm... bin mir gerade nicht so sicher ob while da sinnvoll oder nötig wäre
    lg naitsy
     
  13. 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Du musst ALLE Artikel, welche bewertet werden sollen, aus der DB abfragen und dann die ID von denen eintragen.

    Wie du die Abfragst, weis ich nicht.
     
  14. 14. Oktober 2012
    Zuletzt bearbeitet: 14. Oktober 2012
    AW: Denkhilfe Ratingsystem

    Edit:
    Ich habs jetzt hinbekommen, vielen Dank das bringt mich um Längen weiter und ich hab sogar noch was dazu gelernt Bewertungen habt ihr ja alle bekommen!

    lg naitsy
     
  15. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.