PHP MySQL abfrage zufall

hi,
ich hab jetzt schon fast 3 std nach einer lösung gesucht aber nichts gefunden leider!!!

also mein problem:

ich hab eine mysql datenbank mit 4 feldern

ID|Witz|Name|e-Mail

1.ich möchte nun ID und Witz abfragen und in eine seite einbinden aber nur einen und den immer per zufall

aber ich bekomme es einfach nicht hin!! könntet ihr mir ein (fast) fertiges php sccript posten wo ich nur noch meine daten also server (localhost) und mein benutzername und passwort einfügen muss???

  1. ist es möglich ein formular zu erstellen (input) wo dann user einen Witz eintragen können und ihren namen und e-mail adresse und das dann in die datenbank eingetragen wird? geht das? wenn ja könntet ihr mir evtl auch ein script posten??

lg und schon mal ein riesen danke Flo

Möglichkeit 1:
Du/Sie fragst/en die Anzahl der Zeilen ab und machst das mit rand() (gibt aber Probleme bei „id“-lükenhaften Tabellen)
oder Möglichkeit 2:
Das ganze per SQL-Code machen:

SELECT * FROM tabelle ORDER BY rand() LIMIT 0,1

hi danke für die antwort

SELECT * FROM tabelle ORDER BY rand() LIMIT 0,1

wo muss ich denn das einfügen??

das hatte ich davor aber dann gab es error in zeile 5 und 9!!

<?php include("verbindung.php");
$abfrage = "SELECT ID, Witz FROM Witze LIMIT 1"; $ergebnis = mysql\_query($abfrage); while($row = mysql\_fetch\_object($ergebnis)) { echo $row-\>Witz; } mysql\_close($verbindung); ?\>

hier mal den kompletten fehler beim aufrufen

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /users/daflo99/www/filemanager/mysql/abrage.php on line 5

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /users/daflo99/www/filemanager/mysql/abrage.php on line 9

Bei Abfrage, und natürlich deine Werte einfügen
Der Fehler kann folgende Gründe haben:

  1. bei LIMIT fehlt 0, vor 1 (also: 0,1)
  2. die tabelle gibt es nicht oder ähnliche fehler die auf „nicht gefunden“ zurück zuführen sind.

also sieht das bei dir dann so aus:

<?php : include("verbindung.php");
$abfrage = "SELECT \* FROM Witze ORDER BY rand() LIMIT 0,1"; $ergebnis = mysql\_query($abfrage); while($row = mysql\_fetch\_object($ergebnis)) { echo $row-\>Witz; } mysql\_close($verbindung); ?\>

Ich würde, wenn du nicht was großes wie ein Browsergame programmierst, wo es nicht um Rechenleistung sparen etc geht immer SELECT * benutzen, wieso auch an RAM sparen?

hi habs genau so gemacht wieder ne fehler meldung !!
auserdem möchte ich ja nicht das alle felder angezeigt werden !!

könnte ich dir evtl mal mein passwort geben und du würdest das dannn fr mich machen …?? du darfst mir halt bitte nichts löschen!!

lg flo