Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]+[mysql] i UPDATE
Forum PHP.pl > Forum > PHP
Mayka
Chciałem zapytac co zrobic zeby zapytanie nie zamieniało wszystkich pol ktore nie są edytowane na pola puste ?
Zrobiłem skrypt ktory ma edytowac tylko okreslone pola w tabeli ale niewiem dlaczego wszystkie inne pola zamienia na puste ?
zapytanie wyglada
  1. <?php
  2. $zapytanie =mysql_query ("UPDATE dane SET nrwew='$nrwew',sysok='$sysok',oktyp='$oktyp',jo='$jo',okd='$okd',datp='$datp',pdat='$pdat',proz='$proz',pzak='$pzak',dzak='$dzak',dodal3='$dodal' WHERE nr='$nr'");
  3. ?>

czy ja cos zrobiłem nie tak questionmark.gif
blooregard
Zapytanie nie ma nic do rzeczy, UPDATE nidgy nie zmienia wartości pól nie wymienionych na liście. Po prostu zmienne, które przekazujesz, pewnie są puste. Czy w zapytaniu masz wymienione wszystkie pola tabeli ? Jesli tak, sprawdź, czy w UPDATE gdzies nie ma np. kolumna1='', kolumna2='wartosc', kolumna3='' , bo wtedy UPDATE faktycznie wyczyści zawartość pól w kolumna1 i kolumna3 (bo taką wartość, czyli pusty string, dostał w liście).
Mayka
Ale zapytanie wyglada tak jak wyżej a w tabeli jest jeszcze 10innych rekordów ktore sa wypełnione z innego formularza i chciałem zeby dopisywał te pola ktorych niema. Fakt faktem dopisuje ale kasuje wszystkie inne
blooregard
To może pokaż większy fragment kodu, bo to, co jest w pierwszym poście jest z punktu widzenia SQL poprawne. Błąd musi byc gdzie indziej
matixrr
Troche kolega namotal ale moze chodzi o warunek if(empty...)

Kod
if (!empty($sysok)){
$zapytanie =mysql_query ("UPDATE dane SET nrwew='$nrwew',sysok='$sysok',oktyp='$oktyp',jo='$jo',okd='$okd',datp='$datp',pdat='$pdat',proz='$proz',pzak='$pzak',dzak='$dzak',dodal3='$dodal' WHERE nr='$nr'");
}else{
$zapytanie =mysql_query ("UPDATE dane SET nrwew='$nrwew',oktyp='$oktyp',jo='$jo',okd='$okd',datp='$datp',pdat='$pdat',proz='$proz',pzak='$pzak',dzak='$dzak',dodal3='$dodal' WHERE nr='$nr'");
}

Czyli gdy zmienna $sysok nie jest pusta zostanie wyslana do bazy a gdy jest pusta zostanie pominiete przy wysylaniu...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.