Logikproblem: Selectbox

GoldenEye

Erfahrenes Mitglied
Hi,
es geht um ein kleines Forensystem, an dessen Adminbereich ich gerade arbeite.
Ich möchte jetzt ein Forum, das ich erstellt habe ändern. Unter anderem muss auch die Kategorie, der dieses Forum untergeordnet wird änderbar sein.

Also nehme ich eine Optionsbox und lasse mir mit dem Code <option>".$row3['title']."</option> die verschiedenen Kategorien zur Wahl stellen. Soweit so gut.

Jetzt ist nur das Problem, dass ich die Kategorien nach einem bestimmten Wert ordnen muss (ORDER BY in der Abfrage). Damit steht ja die Kategorie, in der sich das Forum gerade befindet nicht an erster Stelle.
Damit er an erster Stelle steht hab ich jetzt folgendes geschrieben:
PHP:
echo "[Kategorie ändern:]<br/><select name=\"target\">";
$row4 = mysql_fetch_assoc(mysql_query("SELECT catid FROM forum WHERE id = ".$_GET['fid'].""));
$sql2 = "SELECT title FROM category WHERE id = ".$row4['catid']."";
$result2 = mysql_query($sql2) OR die(mysql_error());
while($row2 = mysql_fetch_assoc($result2)) {
echo "<option>".$row2['title']."</option>";
}

$sql3 = "SELECT id,title,sort FROM category";
$result3 = mysql_query($sql3) OR die(mysql_error());
while($row3 = mysql_fetch_assoc($result3)) {
echo "<option>".$row3['title']."</option>";
}
echo "</select>";

Mit diesem Script aber, taucht eine Kategorie (nämlich diejenige, in der sich das Forum gerade befindet) zweimal auf. Einmal durch ".$row2['title']." und einmal, weil sie ja auch automatisch mit ".$row3['title']." ausgelesen wird.

Wie kann ich den Wert ".$row2['title']." in der $sql3 Abfrage sperren, so dass r nicht ausgegeben wird?

Viele Grüße
 
Wenn du die aktuelle Kategorie als "selected" markierst?
Zum Beispiel (ungetestet):
PHP:
echo "[Kategorie ändern:]<br/><select name=\"target\">";

$row4 = mysql_fetch_assoc(mysql_query("SELECT catid FROM forum WHERE id = ".$_GET['fid'].""));
$sql2 = "SELECT title FROM category WHERE id = ".$row4['catid']."";
$result2 = mysql_query($sql2) OR die(mysql_error());

$row2 = mysql_fetch_assoc($result2);

$sql3 = "SELECT id,title,sort FROM category";
$result3 = mysql_query($sql3) OR die(mysql_error());

while($row3 = mysql_fetch_assoc($result3))
{
    $tmp = '<option';
    if( $row2['title'] == $row3['title'] )
    {
        $tmp .= ' selected="selected"';
    }
    $tmp .= ' >' .$row3['title']. '</option>';
}
echo $tmp;
echo "</select>";
 
Hi,
fast gut (s. Anhang).
Die anderen Werte sollten auch noch in die Box rein.
 

Anhänge

  • 1.jpg
    1.jpg
    33,7 KB · Aufrufe: 17
PHP:
$tmp = '';
while($row3 = mysql_fetch_assoc($result3))
{
    $tmp .= '<option';
    if( $row2['title'] == $row3['title'] )
    {
        $tmp .= ' selected="selected"';
    }
    $tmp .= ' >' .$row3['title']. '</option>';
}
echo $tmp;
 
Zurück