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