![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
Za pomocą powiedzmy że czegoś takiego pobieram dane z mojej bazy danych i wstawiam do formularza za pomocą:
Czy moge zrobić aby w zmienna tablicowej $data2 sprawdzić które zmienne są równe "0" i zamienić ich wartość na "null"? Jeżeli, tak to prosze kod jak to zrobić. Chodzi mi o coś takiego dla zmiennej tablicowej:
Przy okazji czy powinienem odwoływać się do zmiennej $data2[hosp2] czy poprzez $data2['hosp2'] - jaka jest różnica bo obie formy działają? Dzięki za informację Prawdziwy przedszkolak ;-) Ten post edytował pela222 31.08.2014, 11:03:43 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 53 Pomógł: 17 Dołączył: 4.07.2014 Ostrzeżenie: (0%) ![]() ![]() |
Jasne że można w taki sposób:
A co do tablicy to powinno się odwoływać w sposób $data2['klucz'] bo jeżeli nie użyjesz apostrofów to PHP szuka stałej o takiej nazwie, jeżeli nie znajdzie to nada jej wartość taką jak jest jej nazwa, ale wywali ostrzeżenie i nie jest to dobra praktyka. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
dzięki za szybką pomoc. Jak napisałem jestem mega przedszkolakiem i nawet prosta pętla jest wyzwaniem. Niemniej jednak coś tu chyba nie tak jest: Jeżeli dobrze czytam to co mi podałeś to w przypadku braku zmiennej nadana jest jej wartość null. U mnie zwraca string(1) "0" i dlatego to nie działa. Bo zmienna jest ale ma wartość "0" probowałem coś takiego:
i dostaje "int(0)" i wszystkie zmienne tablicowe są puste / zero. Probowałem też:
Ale cały czas mam dla var_dump ($data2['hosp2']); zwraca string(1) "0" Ten post edytował pela222 31.08.2014, 11:54:51 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
$data2[$k] = 0
a $data2[$k] == 0 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Teraz dla
dostaje: string(1) "0" string(1) "" Zmienna hosp2: Zmienna spousename: Array array(1) { ["hosp2"]=> NULL } ale: 1) inne zmienne tablicowe które miały wartośc null otrzymały wartość array Podejrzewam że konstruujac taka pętle jak teraz sie tego spodziewałeś ale piszę dla jasności. Ten post edytował pela222 31.08.2014, 13:11:30 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Pokaż var_dump($data2);
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
wynik dla
array(94) { [0]=> string(18) "624745000000795035" ["id"]=> string(18) "624745000000795037" [1]=> string(18) "624745000000053003" ["ownerid"]=> string(18) "624745000000053003" [2]=> string(6) "Adrian" ["firstname"]=> string(6) "Adrian" [3]=> string(9) "Kowal" ["lastname"]=> string(9) "Kowal" [4]=> string(10) "0000-00-00" ["dob"]=> string(10) "0000-00-00" [5]=> string(14) "Firma" ["company"]=> string(14) "Firma" [6]=> string(12) "Worker" ["occupation"]=> string(12) "Worker" [7]=> string(5) "24000" ["income"]=> string(5) "24000" [8]=> array(1) { [""]=> NULL } ["spousename"]=> array(1) { [""]=> NULL } [9]=> array(1) { [""]=> NULL } ["spouselastname"]=> array(1) { [""]=> NULL } [10]=> string(10) "000-00-00" ["spousedob"]=> string(10) "000-00-00" [11]=> array(1) { [""]=> NULL } ["spousecompany"]=> array(1) { [""]=> NULL } [12]=> array(1) { [""]=> NULL } ["spouseoccupation"]=> array(1) { [""]=> NULL } [13]=> array(1) { [""]=> NULL } ["spouseincome"]=> array(1) { [""]=> NULL } [14]=> string(19) "Bheithe" ["street"]=> string(19) "Bheithe" [15]=> array(1) { [""]=> NULL } ["area"]=> array(1) { [""]=> NULL } [16]=> string(6) "Dub" ["city"]=> string(6) "Dub" [17]=> string(13) "Co. Dub" ["state"]=> string(13) "Co. Dub" [18]=> array(1) { [""]=> NULL } ["child1name"]=> array(1) { [""]=> NULL } [19]=> string(10) "000-00-00" ["child1dob"]=> string(10) "000-00-00" [20]=> array(1) { [""]=> NULL } ["child2name"]=> array(1) { [""]=> NULL } [21]=> string(10) "000-00-00" ["child2dob"]=> string(10) "000-00-00" [22]=> array(1) { [""]=> NULL } ["child3name"]=> array(1) { [""]=> NULL } [23]=> string(10) "000-00-00" ["child3dob"]=> string(10) "000-00-00" [24]=> array(1) { [""]=> NULL } ["child4name"]=> array(1) { [""]=> NULL } [25]=> string(10) "000-00-00" ["child4dob"]=> string(10) "000-00-00" [26]=> string(18) "624745000000795037" [27]=> string(18) "624745000000053003" [28]=> string(5) "36.44" ["premium"]=> string(5) "36.44" [29]=> string(2) "20" ["term"]=> string(2) "20" [30]=> string(11) "Accelerated" ["sictype"]=> string(11) "Accelerated" [31]=> string(10) "2014-08-15" ["closingdate"]=> string(10) "2014-08-15" [32]=> string(18) "624745000000795035" ["contactid"]=> string(18) "624745000000795035" [33]=> string(19) "Adrian IL" ["name"]=> string(19) "Adrian IL" [34]=> string(10) "Irish Life" ["provider"]=> string(10) "Irish Life" [35]=> string(8) "11785877" ["policyno"]=> string(8) "11785877" [36]=> string(5) "60000" ["life1"]=> string(5) "60000" [37]=> string(5) "30000" ["sic1"]=> string(5) "30000" [38]=> string(3) "100" ["hosp1"]=> string(3) "100" [39]=> string(3) "170" ["acc1"]=> string(3) "170" [40]=> string(4) "None" ["surg1"]=> string(4) "None" [41]=> string(4) "None" ["frac1"]=> string(4) "None" [42]=> string(1) "" ["life2"]=> string(1) "" [43]=> string(1) "" ["sic2"]=> string(1) "" [44]=> string(1) "" ["hosp2"]=> string(1) "" [45]=> string(1) "" ["acc2"]=> string(1) "" [46]=> string(4) "None" ["surg2"]=> string(4) "None" [47]=> string(4) "None" ["frac2"]=> string(4) "None" } Ten post edytował pela222 31.08.2014, 16:48:21 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
zmień mysql_fetch_array na mysql_fetch_assoc
i zamiast pętli if(empty($data2['hosp2'])) $data2['hosp2'] = null; |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
dostaje: string(1) "0" NULL Zmienna hosp2: Zmienna spousename: string(0) "" |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
czyli jest ok
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
czyli jest ok dla jednej zmiennej hosp2 ale gdzie ta pętla?
dodam że tak samo jest dobrze dla PS. @Pyton Dasz rade coś jeszcze podpowiedzieć co do tej pętli? Thx. PS2... jak kolega Pyton albo kroś inny ma czas na wrzucenie propozycji na pętlę to będę bardzo wdzięczny. :-) Ten post edytował pela222 1.09.2014, 15:48:25 |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Poprostu zajrzyj do manuala....
http://pl1.php.net/mysql_fetch_array Masz tam napisane jak przy pomocy petli WHILE pobrac wszystkie dane z zapytania. Ty teraz pobierasz tylko jeden rekord, a chcesz pobrac wszystkie, wiec mysql_fetch_array masz dac w petli... |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Jak na razie po 1,5 godziny czytania i szperania mam niedziałąjące coś:
ten manual mówi mi tyle co nic...niestety. Jutro na świeżo zobacze czy coś kumam. Dzięki mimo wszystko za podpowiedz co do użycie while... Ps. podejżewam że jedyne co tu jest dobrze to while ($data2 = mysql_fetch_array($query)) hehe |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
W tej chwili zamieniasz całą tablicę, a nie konkretną kolumnę
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
Ok dzieki za pomoc. Z racji że jest to dział przedszkole to opisze jeszcze raz bo wydaje mi się że twoja odpowiedz nie dokońca jest na mój problem:
Więc od początku: Za pomocą zapytania do mysql:
otrzymuje zmienną $data, którą to następnie za pomocą polecenia: umieszczam w tablicy aby móc się w formularzu odwoływać do zmiennych i umieścić je w formularzu za pomocą
Moja tabla ma w tej chwili 48 kolumn (48 zmiennych) co widzę po wywołaniu wynik pokazany dwa posty wyżej -----Moj problem / pytanie ------------- Ponieważ część zmiennych ma wartość równą "0" chcę, aby została wartość 0 zamieniona dla wszystkich zmiennych na null. Powinienem użyć zatem pętli która wykona: "spawdz pokolei wszystkie kolumny i jeżeli wartość danej zmiennej jest równa 0 to zamień tą zmienną na null" co przy zapisie dla pojedynczego rekordu sprowadza się do:
Ps Dodam że (przynajmniej na razie) zapytanie do dazy danych ma zrobione tak że otrzymuję zawsze jeden wiersz z 48 kolumnami (48 zmiennymi). @Turson
nie rozumiem dlaczego w pętli podajesz $data2['jakas_kolumna'] skoro mi chodzi oto żeby ta pętla wykonała się dla wszystkich kolum i sprawdzila która jest równa 0? Ten post edytował pela222 3.09.2014, 10:53:15 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego po prostu nie zaktualizujesz tabeli i ustawisz 0 dla kolumn gdzie jest null?
Cytat nie rozumiem dlaczego w pętli podajesz $data2['jakas_kolumna'] skoro mi chodzi oto żeby ta pela wykonała się dla wszystkich kolum i sprawdzila która jest równa 0? więc musi być kolejny foreach
sprawdz $new Ten post edytował Turson 3.09.2014, 10:28:09 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 17.04.2013 Ostrzeżenie: (0%) ![]() ![]() |
zwraca: array(0) { } zwraca:bool(false) Co do twojego pytania: "Dlaczego po prostu nie zaktualizujesz tabeli i ustawisz 0 dla kolumn gdzie jest null?" jest bardzo zasadne pytanie, ale tego także nie potrafiłem zrobić :-) Przy czym ja chce aby wartość 0 została zastąpiona null a nie odwrotnie. Myślałem że w php mogę prostą pętlą to zrobic a tu już 19 post i wciąż brak rezultatów :-) Ten post edytował pela222 3.09.2014, 10:42:19 |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
UPDATE tabela SET nazwa_kolumny = null WHERE nazwa_kolumny = 0
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 21:43 |