Tach!
while ($row == mysql_fetch_row($result)) // nur 1 Ergebniszeile!
$ids[0]=$row[0];
Das ist die Ursache für deinen Timeout. Du hast dir hier eine Endlosschleife gebaut, die dann endlos wird, wenn kein Ergebnis gefunden werden konnte. == ist ein Vergleichsoperator. $row ist allem Anschein nach vorher nicht vorhanden, also wird es beim Lesen zu null (und erzeugt gleich noch eine Notice, die man angezeigt bekäme, stünde das error_reporting auf E_ALL sowie display_errors auf on). mysql_fetch_row() liefert false, null == false ergibt true und das bei jedem Durchlauf. Wenn doch ein Ergebnis abgefragt werden konnte, ergibt die zweite Zeile ebenfalls nur eine Notice, denn $row ist immer noch null und kein Array. Eine Debugausgabe (mit var_dump()) hätte hier auch gezeigt, dass in $row nicht das gewünschte Ergebnis steht.
while ($row = mysql_fetch_row($result)) // nur 1 Ergebniszeile!
Die zweite Query wird übrigens korrekt verarbeitet...
Ja, hier ist ja auch eine Zuweisung notiert, so wie man das üblicherweise macht.
dedlfix.