Wie WHILE-Schleife in Variable speichern?

Tonda

Erfahrenes Mitglied
Hallo,
folgende Sache:

Eine WHILE-Schleife holt aus der Datenbank alle die Titel der Bücher die Autor X geschrieben hat. Da Autor X und die Bücher in verschiedenen Tabellen liegen habe ich die Tabellen mit einen JOIN verbunden:

$result1 = mysql_query("SELECT DISTINCT books.id, books.Name, books.Titel FROM books JOIN autoren WHERE books.Name = 'Autor X' ") Das klappt soweit ganz gut.

Hier ist der Knackpunkt:

$output = WHILE ($books = mysql_fetch_assoc(result1)) {
echo "<a class='blue' href='books.php?action=detail&amp;id=$row[id]' title='$row[Name]' >$row[Titel]</a><br>\n";
}

Jetzt meldet mir PHP unerwartetes T_WHILE.

Habe echt keine Ahnung.

Bitte helft mir :(
 
PHP:
$output = WHILE ($books = mysql_fetch_assoc(result1)) {
echo "<a class='blue' href='books.php?action=detail&amp;id=$row[id]' title='$row[Name]' >$row[Titel]</a><br>\n";
}

ok, drei sachen:

1. bei mysql_fetch_assoc muss es $result1 heißen und nicht result1
2. wo kommt bitte das array $row her!! nimm stattdessen $books
3. man greift nicht mit $foo[bar] auf ein assoziatives array zu, sondern mit $foo['bar']

solltest du alle bücher in einer variablen speichern wollen, dann könntest du einfach folgendes in die while-schleife schreiben:
PHP:
$buecher[] = $books;
 
Danke, es klappt.
habe das aber anders gelöst:

PHP:
$sql = "SELECT * FROM autors ORDER BY Name";  
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result)) {
   echo "<div><a href=\"a.php?action=detail&id=$row[id]\">$row[Name]</a></div>";
   $sql_books = "SELECT DISTINCT books.id, books.Name, books.titel FROM books JOIN autoren WHERE books.Name = '$row[Name]'";
   $result_books = mysql_query($sql_books);
   while ($row_books = mysql_fetch_assoc($result_books)) {
      echo "<div><a href=\"b.php?action=detail&id=$row_books[id]\">$row_books[Name]</a></div>";
   }  
}

MfG
Tonda
 
Zuletzt bearbeitet:
Drinking on Job,

das Bier in Deutschland zu anderen europäischen Landen verhältnismäßig billiger ist (und manchmal auch besser schmeckt) habe ich auch schon mitbekommen.
Sorry, kann Dir immer noch nicht folgen. Meinst jemand nimmt meinen Code und posted ihn dahin?

Tonda
 
Zurück