Autor Zpráva
petey
Profil
Dobrý den, Ahoj,

rád bych, kdyby mě někdo navedl na elegantnější řešení následujícího problému:
Při úpravě dat načtených z MySQL do formuláře bych chtěl sestavit dotaz do DB jen z odlišných polí.
Momentálně řeším problém následovně:
1. Přečtu data z DB na plánovaném upravovaném řádku,
2. Porovnám s daty z formuláře a sestavuji dotaz:
$co = "UPDATE $this->address SET ";
            if($sel->ulcp != $ulcp){$co .= "ulcp = '$ulcp'"; $comma = 1;$flag = 1;}
            if($sel->mesto != $mesto && $comma == 0){$co .= "mesto = '$mesto'"; $comma = 1; $flag = 1;}else if($sel->mesto != $mesto && $comma == 1){$co .= ", mesto = '$mesto'"; $flag = 1;}
            if($sel->psc != $psc && $comma == 0){$co .= "psc = '$psc'"; $comma = 1;$flag = 1; }else if($sel->psc != $psc && $comma == 1){$co .= ", psc = '$psc'"; $flag = 1;}
            if($sel->popis != $popis && $comma == 0){$co .= "popis = '$popis'"; $comma = 1; $flag = 1;}else if($sel->popis != $popis && $comma == 1){$co .= ", popis = '$popis'"; $flag = 1;}
        $co .= " WHERE id = '$adresa'";
3. Provedu dotaz.

Máte někdo elegantnější řešení v kapse, než tohle prvoplánové řešení?
mimochodec
Profil
$co = "";
if($sel->ulcp != $ulcp){$co .= ", ulcp = '$ulcp'";}
if($sel->ulcp2 != $ulcp2){$co .= ", ulcp2 = '$ulcp2'";}
if($sel->ulcp3 != $ulcp3){$co .= ", ulcp3 = '$ulcp3'";}
..

$co = trim ($co, ',');

if ($co) {
  $co = "UPDATE $this->address SET ".$co." WHERE id = '$adresa'";
//  provedudotaz;
}

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: