![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Pracuję nad katalogiem produktów. Każdy z produktów ma różne cechy takie jak kolor, wysokość, pojemność czy średnicę. Te nazwy cech pojawiają się na karcie produktu na stronie internetowej w układzie cecha: wartość np. kolor: zielony, wysokość:35cm itd. Nie dla wszystkich tych cech przypisana jest w bazie wartość. W takiej sytuacji pojawi się wpis cecha: żadna wartość nie zostanie pokazana.
Chciałbym żeby w takiej sytuacji nie pojawiała się również nazwa tej cechy. Jak to zrobić? Spodziewam się, że trzeba użyć funkcji IF. IF $srednice ma przypisaną wartość to ECHO a jeśli nie ma to nie pokazuj. Nie znam jednak składni, nie wiem jak to powinno zostać poprawnie ujęte i w której części kodu powinno się znaleźć. Proszę o pomoc. Teraz wygląda to tak: czy taki fragment kodu jest wystarczający? Ten post edytował Lukasso 4.10.2013, 14:22:00 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Nie znam jednak składni, nie wiem jak to powinno zostać poprawnie ujęte i w której części kodu powinno się znaleźć. No to skoro nie znasz, to moze warto sie nauczyc?http://pl1.php.net/manual/en/control-structures.if.php |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
No to skoro nie znasz, to moze warto sie nauczyc? Chciałbym, ale nie mam wystarczająco dużo czasu. Jestem grafikiem, a moja styczność z php ogranicza się tylko do wprowadzania drobnych zmian w istniejących projektach. Dzięki za link. Kiedyś wezmę się i przerobię wszystko od podstaw, ale tymczasem szukam pomocy doraźnej. Nie wiesz jak użyć IF? O zgrozo... Cóż, proponuję przefiltrowanie wyników już w momencie pobierania danych z bazy.
Głupia odpowiedź. Gdybym wiedział jak użyć IF to bym nie pytał. Chyba po to jest dział przedszkole, a forum służy do dzielenia się swoją wiedzą z tymi, którzy jej jeszcze nie mają. Jeśli nie chcesz odpowiadać na proste pytanie to po prostu nie odpowiadaj, po co te komentarze? Przefiltrowanie wyników przy pobieraniu z bazy w sposób jaki podałeś nie sprawdzi się w tej sytuacji ponieważ na jednej stronie znajduje się kilkanaście kart produktów. Dla niektórych dana zmienna ma przypisaną w bazie wartość, dla innych nie. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 7 Dołączył: 6.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, jak napisałeś tabelę i jaką wartość przyjmuje pole, jeśli nie ma wartości. Jeśli pole ma domyślnie NULL, to:
W innym wypadku (np. gdy pole ma parametr DEFAULT 0)
Tak czy siak, nospor podał prawidłowy link. Naucz się ifów w PHP. Ten post edytował stud3nt 4.10.2013, 16:56:52 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. To prawda, nauka mnie nie ominie. Muszę jak najszybciej się zorganizować.
Chyba nie dostatecznie jasno opisałem o co mi chodzi. Może inaczej to wytłumaczę: screen To są trzy przykładowe karty produktów. Poniżej są wypisane cechy np. gatunki stali i ich wartości, normy wykonawcze i ich wartości itd. W środkowej karcie dla cechy "gatunki stali" nie przypisano wartości. W takiej sytuacji chcę żeby napis/nazwa cechy nie była widoczna - czyli bez napisu "gatunki stali". |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
W jaki sposób go zmodyfikować? pominąć $value = NULL; Nie, nic to nie daje. W dodatku jak zmienna srednice jest pusta, to na stronie pojawia się tekst jakby z sąsiedniego pola w bazie (kolejnego rekordu).
Tak czy inaczej idziemy chyba w złą stronę. Myślę, że największa modyfikacja powinna znaleźć się tutaj: Kiedy $value nie ma wartości w bazie, nie pojawia się ani jej wartość (to jasne) ani napis z pierwszej linijki. Tak jakby tego nie było. Jeśli nie ma informacji o dostępnych gatunkach stali to nie ma też nagłówka "gatunki stali" |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 291 Pomógł: 829 Dołączył: 14.02.2009 Skąd: łódź Ostrzeżenie: (0%) ![]() ![]() |
Pokaż cały kod jaki masz, bo takie pisanie na podstawie 2 linijek, które podałeś mija się z celem (IMG:style_emoticons/default/wink.gif)
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Po tym co napisałeś zapytanie, które zaproponowałem wcześniej dalej znajduje zastosowanie, po lekkiej modyfikacji:
Przedszkole, przedszkolem, ale instrukcja warunkowa IF w jakimkolwiek języku programowania jest absolutną podstawą. Odpowiedziałem na proste pytanie. Najprostsze rozwiązanie to pominąć puste wiersze już w momencie pobierania danych z bazy. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
Zobaczcie, chodziło mi o coś takiego:
czyli w moim skromnym rozumieniu - jeśli pole 'wykon' ma przypisaną w bazie wartość napisz: "wykończenie powierzchni: <wartość z bazy>" Eksperymentowałem na lokalnym serwerze i to działa. Jeśli pole 'wykon' nie ma wartości, nie pojawia się nic. Niestety ten sam zapis na serwerze, na którym jest strona nie działa. Mimo braku wartości pojawia się napis "wykończenie powierzchni: ". Jedynie miejsce gdzie powinna pojawić się wartość zostaje puste, a ja nie chcę w ogóle tego napisu/tytułu "wykończenie powierzchni: " Czy isset użyłem tutaj dobrze? Chyba tak skoro działa na localhost. Czy działanie tego może zależeć od jakichś ustawień serwera? Ten post edytował Lukasso 5.10.2013, 12:25:43 |
|
|
![]()
Post
#13
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
if (!empty($row['wykon'])) {
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 11.09.2013 Ostrzeżenie: (0%) ![]() ![]() |
TAK! Działa. Super. Dzięki.
Czemu isset działało na localhost? |
|
|
![]()
Post
#15
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Widac z jakiegos powodu miales tam NULL a nie pustą wartosc. Do sprawdzania czy cos jest puste czy nieuzywa sie empty(). Isset sluzy do sprawdzania czy istnieje index tablicy/zmienna
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.09.2025 - 15:24 |