Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]+[mysql] i UPDATE
Mayka
post
Post #1





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
blooregard
post
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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).
Go to the top of the page
+Quote Post
Mayka
post
Post #3





Grupa: Zarejestrowani
Postów: 304
Pomógł: 1
Dołączył: 12.01.2009
Skąd: Kanapa

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
blooregard
post
Post #4


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




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
Go to the top of the page
+Quote Post
matixrr
post
Post #5





Grupa: Zarejestrowani
Postów: 207
Pomógł: 44
Dołączył: 14.04.2007

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:44