![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Nie rozumiem czemu nie mogę porównać wartości wierszy kolumn o podanych nazwach zmiennych w przypadku kiedy kolumny nie są ułożone obok siebie w poziomie, tylko jedna na drugiej lub w osobnych tabelach. Przykład: (tabela z dwiema kolumnami, które są ułożone obok siebie) Kod $kolumna_1[0] $kolumna_1[1] w takim układzie działa taka funkcja:
ale jeżeli mam np taki zestaw kolumn: (tabela z dwiema kolumnami, które są ułożone jedna na drugą) Kod $kolumna_1[0] $kolumna_2[0] w takim układzie kolumn nie działa taka funkcja (zawsze jest FALSE):
Wygląda to tak jakby php nie pamiętało o tym, że wyżej była taka kolumna o zmiennej $kolumna_1[0]. (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif) Przedstawię mój kod, bo może mam jakiś błąd.
Też nie ma znaczenia czy kolumny, które są ułożone jedna na drugiej są razem w tabeli czy w oddzielnych tabelach - zawsze nie można się w jednej kolumnie odwołać do wartości kolumny, która jest "wyżej/niżej". Pozdrawiam! Ten post edytował wojteke 5.08.2009, 23:00:02 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 91 Pomógł: 9 Dołączył: 6.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
ale zagmatwałes..
Czy tobie chodzi o tablice wielowymiarowe? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Raczej nie. Mam jedną tablicę i drugą tablicę. Obie mają kolumny o pewnych nazwach, np.
$kolumna_1[0] $kolumna_2[0] W tych kolumnach są pewne wartości i chciałbym by w którejś z tych tabel dać taki warunek:
Czyli w wierszach danej tabeli, jeśli w obu kolumnach są takie same wartości, to instrukcja IF zwróci TRUE i zostanie, np. dodany dany styl CSS dla tych wierszy. Funkcja działa ale tylko dla kolumn ułożonych obok siebie, a nie jedna na drugiej albo kolumn z różnych tablic. (IMG:http://forum.php.pl/style_emoticons/default/sciana.gif) Ten post edytował wojteke 5.08.2009, 22:50:13 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ale co to znaczy dla kolumn ułożonych obok siebie (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)
Pierwsza pętla powoduje, że w tablicy $kolumna2 zapamiętany jest tylko sotatni rekord pobrany z bazy więc może dlatego Ci te warunki nie działają. Ten post edytował JoShiMa 6.08.2009, 00:20:21 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ale co to znaczy dla kolumn ułożonych obok siebie (IMG:http://fotoo.pl/zdjecia/files/2009-08/212506b8.gif) Pierwsza pętla powoduje, że w tablicy $kolumna2 zapamiętany jest tylko sotatni rekord pobrany z bazy więc może dlatego Ci te warunki nie działają. Może i tak ale co mam zrobić by ten warunek działał? (IMG:http://forum.php.pl/style_emoticons/default/guitar.gif) |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 1 202 Pomógł: 117 Dołączył: 13.04.2007 Skąd: 127.0.0.1 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Tu nie chodzi o warunek tylko o to co masz w tych zmiennych (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Skąd Ci się bierze zmienna (tablica) $kolumna2 ? Przecież iterujesz po wszystkich wynikach i nadpisujesz sobie te dane! Pozdrawiam! |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiłem teraz tak:
(IMG:http://img228.imageshack.us/img228/3314/kolumny3.gif) Czyli przyrównuję wartości dwóch tablic, z tym, że pierwsza tabelka ma tylko jedną komórkę. Jeszcze raz przedstawię kod ale z var_dump'ami.
var_dump($kolumna_2); Kod array(1) { [0]=> string(1) "2" }
echo var_dump($kolumna_2) . var_dump($strzala) . var_dump($kolumna). '< br>'; Kod bool(false) string(5) "puste" array(2) { [0]=> string(0) "" [1]=> string(2) "-6" } bool(false) string(5) "puste" array(2) { [0]=> string(0) "" [1]=> string(1) "2" } bool(false) string(5) "puste" array(2) { [0]=> string(0) "" [1]=> string(1) "3" } Powyższy kod przyrównuje ($kolumna_2[0] == $kolumna[1]) i instrukcja IF nie zwraca TRUE, a powinno, bo w obu tablicach jest "2" w kolumnach: $kolumna_2[0] i $kolumna[1]. Poniżej przedstawię kod który porównuje stałą zmienną $kolumna_stala_zmienna[numerek] = 2; z tabeli i wtedy instrukcja IF zwraca TRUE: Wszystko co napisałem poniżej jest tylko po to by pokazać, że skrypt przydziela styl CSS, jeśli porównuję: ($kolumna_stala_zmienna[numerek] == $kolumna[1]) czyli stałą zmienną z danej tabeli do zmiennej $kolumna[1] z bazy danych.
var_dump($kolumna_stala_zmienna); Kod array(1) { ["numerek"]=> int(2) }
echo var_dump($kolumna_stala_zmienna) . var_dump($strzala) . var_dump($kolumna). '<br>'; Kod array(1) { ["numerek"]=> int(2) } string(5) "puste" array(2) { [0]=> string(0) "" [1]=> string(2) "-6" } array(1) { ["numerek"]=> int(2) } string(8) "strzalka" array(2) { [0]=> string(0) "" [1]=> string(1) "2" } array(1) { ["numerek"]=> int(2) } string(5) "puste" array(2) { [0]=> string(0) "" [1]=> string(1) "3" } Czyli wyświetla strzałkę: string(8) "strzalka". Czemu w pierwszym przypadku nie działa porównanie zawartości tablic? Ten post edytował wojteke 6.08.2009, 13:53:35 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Powiem Ci co zrobić. Zacznij się uczyć PHP, bo nie masz pojęcia co to są tablice i że ich kolumny nie leżą na sobie ani obok. To nie są tabelki jakie możesz sobie narysowac ołówkiem w zeszycie w kratce. Potem pędź do manuala i spróbuj zrozumieć jak działa pętla while, którą wykorzystujesz.
Nie obraź się, ale z Twoim pojmowaniem tablic to nie ma nawet jak do Ciebie mówić, żeby Ci wytłumaczyć, a gotowca Ci pisać nie będę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No bo niby jak Ty te kolumny układasz na sobie? Bierzesz w paluszki i układasz? Ten post edytował JoShiMa 6.08.2009, 20:16:20 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zacznij się uczyć PHP Ja właśnie zaczynam uczyć się php, zaglądam często do manualna ale tego problemu nie udaje mi się rozwiązać. Co do słów przeze mnie użytych do opisania problemu nie wiem czemu się czepiasz. Mam używać nie wiadomo jakiego słownictwa? Jeśli tego chcecie, to będę próbował. Chciałem tylko jak najkrócej przedstawić problem. a gotowca Ci pisać nie będę Ja chciałbym tylko dowiedzieć się co mam zrobić by to działało. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 374 Pomógł: 149 Dołączył: 1.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Masz zrozumieć jak działają tablice, i jak działa pętla której używasz. Powinieneś również zacząć rozróżniać tablice i tabele. (IMG:style_emoticons/default/smile.gif) Nie o słownictwo chodzi tylko o pojmowanie. Nie ma czegoś takiego, że tablice leżą jedna nad drugą albo obok siebie. To nie naleśniki (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.07.2009 Ostrzeżenie: (0%) ![]() ![]() |
Hehe, wystarczyło $kolumnę_2 nie wywoływać z pętli i wtedy działa, także ten problem mam już rozwiązany.
Mam jeszcze jeden problem i chciałbym Was bardzo poprosić o jakąś wskazówkę jak to zrobić: Chciałbym nadać styl CSS tylko i wyłącznie jednej komórce w tabeli. W ten sposób tworzę przykładową tabelę z bazy danych:
I taka tebela wygląda np. tak: (IMG:http://img232.imageshack.us/img232/4455/cssdla1wiersza.gif) I nie wiem jak nadać styl CSS tylko jednej komórce, nie zmieniając stylu CSS innych komórek. Na ilustracji widać kolorowe tło wierszy - taki styl CSS nadaję w ten sposób:
Mój problem polega na tym, że nie działa np. takie coś:
Wszystko ładnie działa oprócz tego, że do danej komórki, zamiast przedzielenia stylu CSS, wpisuje do tej komórki nazwę stylu, czyli w tym przypadku: "styl_css". (IMG:style_emoticons/default/sciana.gif) Ten post edytował wojteke 13.08.2009, 22:43:23 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 14:26 |