[PHP] Quiz, Id, Tabelle, Löschen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von speed04, 7. Mai 2008 .

  1. 7. Mai 2008
    Quiz, Id, Tabelle, Löschen

    hehe,

    also ich habe ein kleines quiz mit db unterstützung programmiert. funktioniert alles soweit top.

    ich habe aber nun ein problem, es besteht die möglichkeit, dass man fragen neu eintragen und auch löschen, sowie bearbeiten kann. trägt man zum beispiel nun 15 neue fragen ein, dann werden ja id's von 1-15 vergeben, somit funktioniert das super. er wählt dann 10 zufallszahlhen zwischen 1 und 15 aus. würde nun aber die frage mit der id 7 gelöscht werden und bei der bildung der zufallszahlen, fällt dann durch zufall diese zahl (7) mit rein, dann zeigt er dazu keine frage an, was auch verständlich ist.

    ich kann mir bei diesem problem nicht wirklich selbst helfen, als idee hätte ich ja die variante neben der id noch eine spalte mit einer nummer zu vergeben. meine fragentabelle sieht so aus:
    ID FRAGE ANTWORT1 ANTWORT2 ANTWORT3 ANTWORT4 LOESUNG

    mh, hat vielleicht einer von euch ne gute idee??? oder würde mir dabei helfen das problem zu lösen???
    suche auch jemanden, der das komplette skript mal durchguckt und auch ausprobiert auf alltagstauglichkeit! über hilfe wäre ich sehr dankbar!!!!
     
  2. 7. Mai 2008
    AW: Quiz, Id, Tabelle, Löschen

    mist hab mich ausversehen bedankt. Überprüfe zuerst ob ein eintrag mit der 7 existiert, wenn nicht soll er einfach noch mal eine zufallszahl generieren oder den nächsten Eintrag nehmen ( also die 8 ).

    Eine andere Möglichkeit wäre ein Array zu generien mit den Id's der Fragen. Das Array wäre ja lückenlos da es fortlaufend nummeriert ist. Somit kannnst du die Zufallszahl auf den Index des Arrays anwenden und dannach die Frage aus der DB abfragen.
     
  3. 7. Mai 2008
    AW: Quiz, Id, Tabelle, Löschen

    Code:
    mysql>select * from fragen order by rand() limit 15
    aber da können auch doppelte einträge mit dabei sein.
     
  4. 8. Mai 2008
    AW: Quiz, Id, Tabelle, Löschen

    Jo, würde es auch so machen wie toschk gesagt hat...

    In etwa so:
    PHP:
    $sql  mysql_query ( "SELECT id FROM quiz" );

    $ids ;
    while(
    $result  mysql_fetch_array ( $sql ))  $ids [] =  $result [ 'id' ];
    Danach entweder auf zufällige keys des arrays zugreifen oder mit shuffle() das array durchwürfeln und dann mit einer Schleife die ersten XX Einträge auslesen...

    Je nachdem wie groß dein Quiz ist macht diese Methode natürlich mehr oder weniger Sinn...Bei mehreren 1000 Fragen lohnt sich dann schon eher Mudoc's Methode - Eventuell hast du dann halt doppelte Fragen..

    Oder du wählst einfach 15 aneinanderhängende Fragen aus
    SELECT * FROM quiz LIMIT zufall(), 15

    // Edit: zufall() ist natürlich keine MySQL Funktion und steht für eine Zufallszahl der Datenbankeinträge-15
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.