Hallo,
ich habe ein Problem mit dem selected im select.
2 Funktionen sollen das lösen:
Die Erste bekommt immer einen distinct sql Befehl. Listet also alle Dinge die in einer Spalte vorkommen auf.(funktioniert auch mit leichten Abänderungen für sich alleine)
function create_select($name, $size, $sql_statement, $spaltenname, $vergleichsstatement)
{
ociexecute($sql_statement,OCI_DEFAULT);
echo "<select name=\"$name\" size=\"$size\">";
while (OCIFetchInto($sql_statement,$results,OCI_ASSOC))
{
$wert = $results["$spaltenname"];
echo "<option value='$wert'";
if(vergleich($vergleichsstatement, $spaltenname) == $wert)
{echo " selected";}
echo '>$wert</option>';
}
echo "</select>";
}
Die Zweite ist nur eine Hilfsfunktion. Sie liesst aus einem langen Statement (50 Tabellenzeilen betreffend nur den Wert der Spalte aus, den man ihr mit gibt
(ist immer nur ein Wert = Resultsarray hat immer genau ein Wert)
function vergleich($sql_statement, $spaltenname)
{
ociexecute($sql_statement,OCI_DEFAULT);
while (OCIFetchInto($sql_statement,$result,OCI_ASSOC))
{
$wert = $results["$spaltenname"];
}
return $wert;
}
Beide Funktionen bekommen aus unterschiedlichen sql-Statements die gleiche Spalte übergeben.
Nun soll einfach an den beiden Stellen wo sich die Funktionen "treffen" ein selected ausgegeben werden. Warum funktioniert das so nicht?
Gibt es da noch eine wesentlich einfachere Methode oder eine die nicht so Resourcen fressend ist?
ich habe ein Problem mit dem selected im select.
2 Funktionen sollen das lösen:
Die Erste bekommt immer einen distinct sql Befehl. Listet also alle Dinge die in einer Spalte vorkommen auf.(funktioniert auch mit leichten Abänderungen für sich alleine)
function create_select($name, $size, $sql_statement, $spaltenname, $vergleichsstatement)
{
ociexecute($sql_statement,OCI_DEFAULT);
echo "<select name=\"$name\" size=\"$size\">";
while (OCIFetchInto($sql_statement,$results,OCI_ASSOC))
{
$wert = $results["$spaltenname"];
echo "<option value='$wert'";
if(vergleich($vergleichsstatement, $spaltenname) == $wert)
{echo " selected";}
echo '>$wert</option>';
}
echo "</select>";
}
Die Zweite ist nur eine Hilfsfunktion. Sie liesst aus einem langen Statement (50 Tabellenzeilen betreffend nur den Wert der Spalte aus, den man ihr mit gibt
(ist immer nur ein Wert = Resultsarray hat immer genau ein Wert)
function vergleich($sql_statement, $spaltenname)
{
ociexecute($sql_statement,OCI_DEFAULT);
while (OCIFetchInto($sql_statement,$result,OCI_ASSOC))
{
$wert = $results["$spaltenname"];
}
return $wert;
}
Beide Funktionen bekommen aus unterschiedlichen sql-Statements die gleiche Spalte übergeben.
Nun soll einfach an den beiden Stellen wo sich die Funktionen "treffen" ein selected ausgegeben werden. Warum funktioniert das so nicht?
Gibt es da noch eine wesentlich einfachere Methode oder eine die nicht so Resourcen fressend ist?
Kommentar