Marc2: Ergebnis der Schleife in einer Funktion ausgeben

Hallo,
ich habe folgende Funktion geschrieben.

  
function zeigewoerter($buchstabe) {  
 $sql = "SELECT wort FROM woerter WHERE wort LIKE '".$buchstabe."%' ORDER BY wort LIMIT 0, 200";  
 $result = mysql_query($sql);  
 while ($row = mysql_fetch_assoc($result)) {  
  return $row['wort']."<br />";  
 }  
}  

Jetzt Versuche ich die Wörter die in dieser Schleife erzeugt werden so auszugeben:

echo zeigewoerter("a", $aktuelleseite, $wps);

Leider wird immer nur das erste Wort aus meiner 200 Wörter langen Liste ausgegeben. Ich habe hier ein Verständnisproblem. Könnt ihr mir helfen?

Danke.

  1. Sorry, das hier ist falsch.

      
    echo zeigewoerter("a", $aktuelleseite, $wps);  
    
    

    Die neue Version heißt so:

      
    echo zeigewoerter("a");  
    
    
  2. Hi!

    Tu dir mal nen Gefallen und betreib etwas Debugging:

    while ($row = mysql_fetch_assoc($result)) {
      echo"vor dem Wort <br> ";
      return $row['wort']."<br />";
      echo "nach dem Wort<br>";
     }

    und

    echo "Start<br>";
    echo zeigewoerter ("a");
    echo "Ende";

    Da lernt man oft gleich was.

    1. AHA! Mit echo anstatt return funktioniert es. Danke für die Hilfe!

      1. AHA! Mit echo anstatt return funktioniert es. Danke für die Hilfe!

        Du kannst auch alles in einem Array sammeln und das als Rueckgabewert benutzen.

        --
        "Sei froh dass du nen Virenscanner hast, der schlauer ist als du..."
         
  3. function zeigewoerter($buchstabe) {
    $sql = "SELECT wort FROM woerter WHERE wort LIKE '".$buchstabe."%' ORDER BY wort LIMIT 0, 200";
    $result = mysql_query($sql);
    while ($row = mysql_fetch_assoc($result)) {
      return $row['wort']."<br />";
    }
    }

      
    Das Problem ist, dass eine Funktion mit der return-Anweisung abbricht, da nur ein Wert zurückgegeben werden kann.