caute mam problem ohladne updatovania databazy. pri registracii a po odoslani udajov sa udaje zapisu do databazy. ale ked chcem udaje po prihlaseni upravit niektore polia, ktore upravit nechcem mi v databaze automaticky prepise resp. vymaze, kedze vo formulari som do daneho pola nic nenapisal. Neviete mi poradit ako to mam zabezpecit, aby mi nevyplnene polia neodosielalo??? dakujem vopred
Fórum › PHP
UPDATE databazy
Pri vkladani do databaze si v PHP over, jestli je pole nastavene treba takhle:
// jmeno pole je treba "policko"
if(@$_GET["policko"]) ...//zde pridej kod pro pridani tohoto udaje do MySQL prikazu
podminka bude splnena pouze pokud se policko nerovna 0,"" (prazdny retezec) nebo null.
Alebo $_POST['policko'] ;)
Neviem, či som ťa správne pochopil, ale ja to riešim asi tak, že si načítam do formulára (v ktorom nastavujem editované hodnoty) všetky pôvodné hodnoty. Keď žiadnu z nich nezmeníš, znovu sa to uloží tak, ako to bolo pôvodne. Dúfam, že ma chápeš...
To CommanderZ :
CommanderZ napsal:
Pri vkladani do databaze si v PHP over, jestli je pole nastavene treba takhle:
// jmeno pole je treba "policko"
if(@$_GET["policko"]) ...//zde pridej kod pro pridani tohoto udaje do MySQL prikazu
podminka bude splnena pouze pokud se policko nerovna 0,"" (prazdny retezec) nebo null.
hmm..a nemozem namiesto GET pouzit POST???
Tocimanko napsal:
Alebo $_POST['policko'] ;)
Neviem, či som ťa správne pochopil, ale ja to riešim asi tak, že si načítam do formulára (v ktorom nastavujem editované hodnoty) všetky pôvodné hodnoty. Keď žiadnu z nich nezmeníš, znovu sa to uloží tak, ako to bolo pôvodne. Dúfam, že ma chápeš...
ano presne to som chcel spravit aj ja, ale mam tam textarea do ktoreho sa mi neda nacitat predosly text. do klasickych inputov mi to ide, ale do textarea nie
neviem ci som to spravil tak ako si myslel
if(@$_POST['name']) $meno=$_POST['name'];
$hesloold=$_POST['hesloold'];
if(@$_POST['nick']) $Username=$_POST['nick'];
if(@$_POST['icq']) $icq=$_POST['icq'];
if(@$_POST['email']) $email=$_POST['email'];
if(@$_POST['osebe']) $popis=$_POST['osebe'];
if(@$_POST['posobenie']) $posobisko=$_POST['posobenie'];
$query = "update users set meno='$meno',Username='$Username',icq='$icq', email='$email', popis='$popis', posobisko='$posobenie' WHERE Password='$hesloold'";
ale takto to nefacha prepisuje to stale
if(@$_POST['name']) $meno=$_POST['name'];
$hesloold=$_POST['hesloold'];
if(@$_POST['nick'])
$Username=$_POST['nick'];
if(@$_POST['icq'])
$icq=$_POST['icq'];
if(@$_POST['email'])
$email=$_POST['email'];
if(@$_POST['osebe'])
$popis=$_POST['osebe'];
if(@$_POST['posobenie'])
$posobisko=$_POST['posobenie'];
$query = "update users set meno='$meno',Username='$Username',icq='$icq', email='$email', popis='$popis', posobisko='$posobenie' WHERE Password='$hesloold'";
Nie nie nie... V tomto tvojom prípade sa uloží buď zmenená hodnota alebo nulová. A ty predsa nechceš uložiť hodnotu, pokiaľ nebola zmenená. Moje riešenie je najjednoduchšie. Ako to, že nevieš načítať text do textarea? Príklad...
Povedzme, že máš v premennej $zaznam[1] uloženú nejakú informáciu, ktorú si "vytiahol" z db. Nasleduje výpis do textarea...
echo "<textarea>".$zaznam[1]."</textarea>";
Jednoduché, že? :)
Fuj, pracovat s SQL prikazy v textovem rezimu, na to uz jsem si odvykl...:P
Blbes to pochopil.
$sql=array();
if(@$_POST['jmeno']) $sql[]="jmeno='".$_POST['jmeno']."'";
if(@$_POST['telefon']) $sql[]="telefon='".$_POST['telefon']."'";
if(@$_POST['mail']) $sql[]="mail='".$_POST['mail']."'";
$sql="update users set ".implode(", ",$sql)." where...";
Jen jako postouchnuti, rozhodne to neni hotove reseni ;)
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Win Update nebo Office Update ničí ActiveX objekty — založil Pfox
Vkladanie do databázy — založil Peter
Prenasanie celej databazy — založil Ján Varhol
Nova polozka do databazy — založil Elited
Import suborov do databazy — založil Tomas1988
Moderátoři diskuze