tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
573
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    stega stega ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    178
    Hi!
    ich habe ein Problem:
    Ich möchte mit PHP Daten aus einer MySQL-Datenbank holen. Es handelt sich um beliebige Texte. Diese sollen dem User aber nur einzeln angezeigt werden und per Zufallsauswahl ausgegeben werden.
    Die DB-Tabelle sieht so aus:
    ---id -----text-----test--- (test und so is unwichtig für dieses Problem)

    Jetzt soll das Script ne Zufallszahl erstellen und dann schauen, ob bei der Zufallszahl eine Textid vorhanden ist. Wenn ja, soll der Text mit SELECT herausgeholt werden.
    Wenn es aber die id der zufallszahl noch nicht oder nicht mehr gibt (weil die texte auch gelöscht werden können und dann eine id-Folge wie z.B. diese entshene kann: 1,4,5,6,9,10),
    dann soll eine Schleife sooft durchlaufen werden, bis eine Zahl herauskommt, bei der eine id bestehen würde.

    Wie mach ich das?

    Bisher habe ich mit while rumgepfuscht, aber da hat das Script mir dann nix ausgegeben außer Seitenweise Fehler...

    PHP-Code:
    $query "SELECT id, text, test FROM confess BY rand(".time().") LIMIT 1";  //das mit dem rand() hab ich hier auf diesen Seiten irgendwo gefunden
    $db mysql_query($query);
    while (
    $db == "") {       //wenn nix da ist, soll es weiter versucht werden, bis eine zahl mit einer passenden id herauskommt
      
    $query2 "SELECT id, text, test FROM confess BY rand(".time().") LIMIT 1";
      
    $db mysql_query($query2);
      if(
    $db != "") {                              //Abbruch wenn was da ist
      
    break;
      }
    print 
    $db;
      } 
    thx
     

  2. #2
    Registriert seit
    Jan 2004
    Beiträge
    1.072
    Dein SQL-Query ist einfach falsch.
    http://dev.mysql.com/doc/mysql/de/Ma...s.html#IDX1221
    Eine Schleife brauchst du nicht.
     

  3. #3
    stega stega ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    178
    ich versteh das auf der verlinkten Seite leider nicht.
    Kann mir jemand einfach zeigen, wie ich den Code ändern muss, damit das funktioniert? *büdde*
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    MySQL-Funktionen werden normalerweise in Großbuchstaben geschrieben – es kann jedoch sein, dass auch klein geschriebene korrekt erkannt werden. Desweiteren verwendest du einen von MySQL reserviertes Wort. Um dies trotzdem verwenden zu können, musst du es eindeutig durch sog. Backticks (`, Akzent grave) als Datenbank-, Tabellen-, Index-, Spalten- oder Alias-Namen auszeichnen.
     

  5. #5
    Registriert seit
    Jan 2004
    Beiträge
    1.072
    SELECT * FROM tabelle ORDER BY RAND()
    Was kann man daran nicht verstehen?
     

  6. #6
    stega stega ist offline Mitglied Gold
    Registriert seit
    Sep 2004
    Beiträge
    178
    hey...danke schön, jetzt klappts!
    super, dass ihr mir geholfen habt =) stand wohl etwas auf dem Schlauch
     

Ähnliche Themen

  1. map mit einer for-Schleife durchlaufen?
    Von LadyMarion im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 04.08.08, 12:05
  2. Schleife abbrechen
    Von gygra im Forum Flash Plattform
    Antworten: 0
    Letzter Beitrag: 11.07.07, 23:38
  3. For Each schleife abbrechen
    Von derfragende79 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 11.03.05, 16:37
  4. Schleife abbrechen...
    Von Havoc2k im Forum C/C++
    Antworten: 10
    Letzter Beitrag: 02.02.05, 13:13
  5. for schleife abbrechen
    Von laor im Forum PHP
    Antworten: 11
    Letzter Beitrag: 03.06.03, 19:58