Robert Stein: Werte der Auswahliste aus MySQL-Datenbank???

Ich möchte den Inhalt einer Auswahlliste automatisch aus einer MySQL-Datenbank generieren.

Um ständig die aktuellsten Wert in der Auswahlliste zu haben..
nun habe ich schon auf diversen PHP-Seiten nach einer Lösung geguckt..
und auch eine passende Funktin namens

LOVSELECTION gefunden.

nur leider fand ich die Erklärung nicht sonderlich gut...und auf allen Seiten war jeweils ein & die selbe Quelle von Kristian Köhntopp

hier mal das Listing aus dem Web

<?php
/*
 * lovselection - turn a list of values table from a database
 *                into a html option list.
 *
 * (requires DB_Sql subclass from PHPLIB)
 *
 * by Kristian Köhntopp
 *
 */

function lovselection($classname, $table, $field, $oldvalue) {
  $ret = "";
  $db  = new $classname;

$query = sprintf("select %s from %s",
             $field,
             $table
           );
  $db->query($query);
  while($db->next_record()) {
    if ($db->f("field") == $oldvalue)
      $selected = " selected";
    else
      $selected = "";

$ret .= sprintf("<option%s>%s</option>\n",
              $selected,
              $db->f($field)
            );
  }

$db->free();
  return $ret;
}

/*
 * is_validlov - check if a given value is valid according
 *               to a given list of values
 *
 * by Kristian Köhntopp
 *
 */
function is_validlov($classname, $table, $field, $value) {
  $db = new $classname;

$query = sprintf("select %s from %s where %s = '%s',
             $field,
             $table,
             $field,
             addslashes($value) // value from outside
                                // is potentially dangerous!
           );
  $db->query($query);
  if ($db->num_rows() == 1) {
    $db->free();
    return true;
  } else {
    $db->free();
    return false; // 0 or 2+ answers are a failure!
  }
}

?>

<!-- Formularfragment -->
<select name="f_ortsnetz" size="1">
<?php lovselection("DB_Example","ortsnetze","vorwahl",$ortsnetz) ?>
</select>

<!-- Auswertefragment -->
<?php
if (is_validlov("DB_Example"; "ortsnetze", "vorwahl", $f_ortsnetz))
  $ortsnetz = $f_ortsnetz; // value is valid
else {
  $error["ortsnetz"] = "Das angegebene Ortsnetz ist ungültig.";
  $ortsnetz = ""; // clear session variable
}
?>

So nun weiss ich aber nicht wie ich diese Subclass aus PHPLIB (die es noch nicht einmal gibt in phplib7.4 pre1)

oder

was diese Variablen bedeuten

$oldvalue
$classname

oder dieses Zeichen

%s

oder an welcher Stelle dieser Quellcode stehen muss..
ich habe mir gedacht innerhalb der <seclect> -Anweisung

hm..wie ihr seht ich hab echte Probleme :(((

hoffe jemand kann mir weiterhelfen...

Thanx

Robert Stein

  1. Kannst du PHP ? Wenn ja würd ich dir raten geh folgendermassen vor. :D lese alle deine daten aus der mySQL Datenbank in einen Array ein. Und dann gib doch einfach alles wieder mit einem echo aus. Billig aber sollte irgendwie schon laufen.. ;D

    $query = "SELECT * FROM tabelle";
    $result = @mysql_query($query,$db) or die(mysql_error());
    while ($row = mysql_fetch_row($result))

    {
      echo "<option>$row[0];
      echo "<option>$row[1];
      echo "<option>$row[2];
      echo "<option>$row[n];
    }