![]() |
![]() |
-Gość- |
![]()
Post
#1
|
Goście ![]() |
Witam!
Piszę skrypt i mam błąd i kombinuje chyba z 2 godziny i nic nie wymyśliłem, coś jest pewnie z instrukcjami warunkowymi. Nie mogę doszukać się błędu. Oczywiście wiem, że forum nie słuzy do poprawiania składni ale będę bardzo wdzięczny. Pozdrawiam Błąd jest na linii 146 czyli pod koniec, tak jakby brakowało jednego } ale nie wiem. Z góry dziękuję
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 492 Pomógł: 33 Dołączył: 16.08.2007 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Proponuję zedytować kod, zrobić wcięcia i przestrzegać miłej konwencji nawiasów klamrowych typu
zamiast
Wprawdzie obie konwencje są zalecane, prawidłowe i równie popularne, ale, nie tylko moim zdaniem, pierwsza, choć zajmuje więcej linii, jest znacznie łatwiejsza do odczytania - ja ją stosuję i nie mam problemów z nawiasami klamrowymi, wszystko jest czytelne i przejrzyste, nawet przy bardzo dużych i rozbudowanych w pętle oraz instrukcje warunkowe plikach. Skopiowałem sobie do edytora ten Twój kod i po usunięciu wierszy dołączających pliki też mi w tej samej linii wyskakuje błąd, dlatego myślę, że to nawiasy klamrowe - nie widzę innego błędu składni czy parsowania w pobliżu tamtego miejsca... Jeszcze jedna uwaga - pętlę while z linii 15-27 (zajmuje 13 linijek) można zastąpić następującym blokiem:
Nieco łatwiej i krócej, nieprawdaż? Funkcja extract() tworzy zmienne o wartościach takich jak klucze tablicy. Ma tam parę wyjątków - nie zawsze działa prawidłowo w tej formie, domyślnie nadpisuje istniejące zmienne itp., ale większość jej niedoskonałości można zniwelować przez podanie jej opcjonalnych parametrów (które w tym przypadku nie są ani trochę potrzebne). Chcesz to zajrzyj do dokumentacji, bo nie chce mi się opisywać czegoś, o co nie pytałeś. Tak tylko mówię, żebyś zoptymalizował trochę kod (a raczej go skrócił (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) (zreszta, można to samo zrobić pętlą foreach lub dowolną inną, tyle że to już jest zaimplementowane... w każdym razie nie należy zajmować 13 linii kodu tam, gdzie potrzeba 4 (w przypadku extract()) lub 5 (w przypadku foreach)). A jak zrobisz coś z tymi nawiasami klamrowymi, to sam będziesz wiedział, gdzie jest błąd (a jak nie to pisz). edit: A tak w ogóle to prawdopodobnie nie potrzeba tam wystarczy tylko
No chyba że chcesz, żeby wartościami zmiennych były dane pobrane z ostatniego odczytanego rekordu tablicy, a nie z pierwszego... Bo robiąc pętlę tak jakby chcesz, żeby te zmienne posiadały tyle wartości, ile jest rekordów w bazie danych, a to przecież nie tablice, tylko zwyczajne zmienne skalarne (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Stąd wnioskuję, że liczba wierszy wyniku MySQL $wykonaj jest równa 1, w przeciwnym przypadku kod działa Ci błędnie. A jeśli wiersz jest jeden, to nie potrzebujesz pętli. Ten post edytował Hazel 16.08.2007, 18:57:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 2 Dołączył: 8.11.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
od linii 140:
Tak jak napisał Hazel powinieneś się zaprzyjaźnić z Tabulatorem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mnie pomaga też notepad++ który podświetla pary klamr - otwierającą i zamykającą |
|
|
-Gość- |
![]()
Post
#4
|
Goście ![]() |
Wielkie dzięki za odpowiedź, że się tak rozpisaliście (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
P.S. Po poprawieniu błędu przerobie ten kod na bardziej czytelniejszy jak napisaliście. Kresh, napisałeś: } // to zamyka warunek z 7 linii: if ($_SESSION['user']) { o co chodzi? Po if ($_SESSION['user']) mam jeszcze sprawdzenie profesji i potem XY, więc te 2 instrukcje trzeba chyba zamknąć przed zakonczeniem $_SESSION['user']. Nie jestem jakimś zawodowcem i nie zbyt wiem jak to zrobić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) z góry dzięki |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 04:20 |