Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL Daten ausgeben

Einklappen

Neue Werbung 2019

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

  • SQL Daten ausgeben

    Hallo

    Ich versuche einen Zitatgenerator zu machen, der bei jedem neuen Seitenaufruf ein anderes, vorgefertigtes Zitat ausgibt.

    Um die Zitat zu speichern verwende ich eine SQL Datenbank.
    Da ich neu bin habe ich zwei Probleme:
    Wie ordne ich die Tabelle und die Felder an und wie kann ich zufällig ein Zitat ausgeben.

    Bis jetzt habe ich eine Datenbank (zitate), darin eine Tabelle (best) und dann die einzelnen Einträge ("Zitat1", "Zitat2", usw.) in Feldern als Text.
    Gibt es eine bessere Möglichkeit?

    Um jetzt per Zufallszahl ein Zitat auszugeben habe ich gedacht ich nehme die Nummerierung der Arrays. Also echo $zitat[0] um das erste Zitat auszugeben. Dann ersetze ich 0 einfach durch $zufallszahl

    Das ganze funktioniert allerdings nicht

    Für die Ausgabe habe ich:
    Code:
    	
    $zitat = mysql_query("SELECT * FROM best");
    	while ($daten=mysql_fetch_assoc($zitat)) {
    		echo $daten[0];
    	}
    Was mache ich falsch?

    Grüsse
    PS: Bitte nicht nach MySQL verschieben

  • #2
    http://de3.php.net/manual/de/functio...etch-assoc.php
    du hast dir nicht das manual durchgelesen
    das machst du falsch!!!

    Kommentar


    • #3
      Habe es jetzt wie folgt gelöst:
      Code:
      //Zufallszahl erzeugen
      $minimum = 1;
      $maximum = 10;
      srand ((double)microtime()*1000000);
      $zufall = rand($minimum, $maximum);
      $zitat = "Zitat".$zufall;
      
      @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());    
      mysql_select_db(MYSQL_DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());    
      	
      // Hier kann man jetzt MySQL-Querys senden
      $result = mysql_query("SELECT * FROM best");
      while ($daten=mysql_fetch_assoc($result)) {
      	echo $daten["$zitat"];
      }
      Funktioniert soweit.
      Gibt es aber noch irgendwelche Verbesserungs - oder Obtimierungsmöglichkeiten?

      Kommentar


      • #4
        Code:
        SELECT * FROM best ORDER BY RAND() LIMIT 0,1

        Kommentar


        • #5
          Also
          Code:
          SELECT * FROM best ORDER BY RAND() LIMIT 0,1
          anstatt
          Code:
          //Zufallszahl erzeugen
          $minimum = 1;
          $maximum = 10;
          srand ((double)microtime()*1000000);
          $zufall = rand($minimum, $maximum);
          $zitat = "Zitat".$zufall;
          ?

          Kommentar


          • #6
            das ist die mysql-abfrage
            den ganzen zufallskram kannst du dir sparen und einfach die mysql-anweisung so gestalten
            sieht dann so aus:
            Code:
            @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) OR die("Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());    
            mysql_select_db(MYSQL_DATABASE) OR die("Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());    
                
            // Hier kann man jetzt MySQL-Querys senden 
            $result = mysql_query("SELECT * FROM best ORDER BY RAND() LIMIT 0,1"); 
            $daten=mysql_fetch_array($result);
               echo $daten['zitat'];
            }

            Kommentar

            Lädt...
            X