Tom: option via datenbank vorselektieren

Beitrag lesen

Hello,

Hmmhh...ein Vergleich wird schwer, aber ich versuchs ein bisschen ausführlicher:

Also. Ich habe ein Formular, darin gibts ein dorp down menü. Das Drop Down menü wird von diesem while erzeugt:

<?php
        include ('dbconnect.php');

$query = mysql_query('SELECT * FROM xy');

echo '<td><select name="yy">';
        while($result = mysql_fetch_array($query)){
                echo '<option value="'.$result['pid'].'">'.$result['xy'].'</option>';
        }
        echo '</select></td>';
?>


>   
> Mein Problem ist:  
  
Dass Du Datenbeschaffung aus der DB, Aufbereitung zur Anzeige, Entgegennahme und Auswertung des (rückerhaltenen) Requests nicht sauber trennst.  
  
Außerdem ist es für derartige \_Vorgänge\_ immer wichtig, dass man sich für eine Strategie entscheidet  
- vorgangsaktuell  
- requestaktuell  
  
Für eine vorgangsaktuelle Strategie werden alle benötigten Daten am Anfang des Vorganges aus der Datenhaltung beschafft und z.B. in der Session zwischengespeichert. Ein Vorgang kann aus mehreren Roundturns (Request - Response) bestehen. Sind alle Daten dann vollständig, wird \_versucht\_, sie unter Beachtung von Konkurrenzsituationen in die Datenhaltung einzutragen. Konnten alle Änderungen fehlerfrei durchgeführt werden, ist der Vorgang abgeschlossen.  
  
Eine requestaktuelle Bearbeitung eines komplexeren Vorganges habe ich bis heute noch nicht hinbekommen ohne eine umfangreiche und aufwändige Transaktionssteuerung zur Verfügung zu haben. Mit MySQL also bisher meiner Meinung nicht möglich.  
  
Leider wird auf konkurrierende Zugriffe in den meisten Webapplikationen überhaupt nicht geachtet. Daher kommen dann immer die Buchungsfehler :-O  
  
  
  
Baue die also eine Anzeigefunktion für das <select>, die nur Daten übernimmt z.B. in zwei Arrays. Sorge dafür, dass bei einer Rückführung der Daten beim Folgerequest auch eindeutog erkannt werden kann, zu welchem <select> diese gehören und welche zulässig sind.  
  
Dazu musst Du (bei der Strategie "vorgangsaktuell") die letzte Abfrage aus der DB zwischenspeichern in der Session. Dann kannst du vergleichen, ob die gewählte Option zulässig ist, bzw. welcher Klartext zum Option-Index gehört.  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>