phpbar.de logo

Mailinglisten-Archive

[php] autom. UPDATE-SET generieren

[php] autom. UPDATE-SET generieren

Sebastian Mendel lists at sebastianmendel.de
Mit Nov 24 15:06:04 CET 2004


Steffen Kother wrote:
> Hallo Leute,
> 
> trotz des herrlichen Wetters draussen und des vielen Sonnelichts komme 
> ich nciht weiter.
> 
> Bei einer "Sicherheitsfrage" werden geänderte Felder wie folgt für die 
> UPDATE-Funktion aufbereitet:
> 
> <snip>
> foreach ($WerteArr as $Key => $kVal) {
>    $Tabelle.= '<input type="hidden" name="SET[]" value="';
>    $Tabelle.= base64_encode($Key.'@'.$kVal).'">'."\r\n";
> }
> </snip>
> 
> "SET[]" einfach, damit ich alle mit einem Rutsch verarbeiten kann 
> (s.u.). Beim endgültigen Sichern sollen bestimmte $Key extra verarbeitet 
> werden. So hier alles, was nciht mit "INV" zu tun hat:
> 
> <snip>
> /*
> $SET  = Felder zu ändern in Form Schlüssel at Wert
> $dSET = zerlegtes $SET, Schlüssel in $dSET[0], Wert in $dSET[1]
> $cSET = Anzahl der Felder
> $mSET = MySQL UPDATE-SET
> $sSET = 1 sofern Schlüssel "INV" enthält sonst 0
> */
> 
> $SET = decode_base64($_POST['SET']);
> $cSET = count($SET);
> 
> // $mSET = '';
$mSET = array();

> for ($x = 0; $x < $cSET; $x++) {
>    $dSET = explode('@', $SET[$x]);
>    $sSET = substr_count($dSET[0], 'INV');
> 
>    if (empty($sSET)) {
>        if ($dSET[0] == 'KND_NR') $dSET[0] = 'kunnr';
>        if ($dSET[0] == 'VERKAEUFER') $dSET[0] = 'an';
> 
>        // $mSET.= strtolower($dSET[0]).' = "'.$dSET[1].'"';

$mSET[] = strtolower($dSET[0]).' = "'.$dSET[1].'"';

>        // if ($x + 1 < $cSET) $mSET.= ', ';
>        // else $mSET.= ' ';
>    }
> }

$mSET = implode( ', ', $mSET );

> </snip>
> 
> Es bleibt aber immer noch ein Komma übrig. Geändert wurden 3 Felder (2x 
> anderes, 1x Bzgl. "INV").
> 
> "UPDATE fibu_db.probleme SET kunnr = "4711", problem = "Das...", WHERE 
> lfd_nr = 1".
> 
> Gibt es da noch eine passende Möglichkeit oder muss ich es doch mit 
> "str_replace()" entfernen?


-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet


php::bar PHP Wiki   -   Listenarchive