![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 2 Dołączył: 4.05.2011 Ostrzeżenie: (10%) ![]() ![]() |
Witam
Mam problem z pętlą foreach, otóż gdy mój kod wygląda następująco :
Wyświetla mi się zawartość wszystkich kolumn po kolei. Gdy zmienię ten kawałek kodu :
Na :
Wyświetla mi się duża litera T. Mógłby mi ktoś wytłumaczyć w czym robie błąd? Pozdrawiam |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Najprościej sprawdź sobie co tam masz print_r albo var_dump na $query. Jako dodatkową informacje dodam, że to co zrobiłeś jest błędem bo pobierasz zawartość całej tabeli, ale zwracasz sobie tylko jeden rekord.
W $query masz aktualnie albo false gdy zapytanie było zwróciło nic albo tablicę poindeksowaną nazwami pól w tabeli. pętlą foreach wyświetlasz sobie całą zawartość tej tablicy, ale w niej już nie masz wpisu który jest tablicą i ma index np. message, tutaj możesz wyświetlić:
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 81 Pomógł: 2 Dołączył: 4.05.2011 Ostrzeżenie: (10%) ![]() ![]() |
Użyłem var_dump i o to co uzyskałem :
Mam 3 kolumny w bazie danych (id, title oraz message). Id = 1 Title = Test Message = Dupa Widzę że wyświetlają mi się pierwsze litery wyrazów, co zrobić by wyświetlała się pełna zawartość komórki? Pozdrawiam |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 350 Pomógł: 31 Dołączył: 23.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie Twoja klasa jest strasznie słaba - tak na szybko:
a) rozbij zapytania $query = mysql_query(); $row = mysql_fetch_assoc($query); ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Nie każde zapytanie musi zwracać wynik.
Przecież np. będę chciał zrobić update i nie chce wyniku, ewentualnie chce rezultat w postaci prawy/fałsz czy update został wykonany. Tak samo insert. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 215 Pomógł: 44 Dołączył: 31.07.2011 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
Tak jak już wspomniane było całość masz bardzo źle napisane - nielogicznie. Poza tym Twoja funkcja query() zwraca tylko pierwszy wynik otrzymany z zapytania. Jeśli chcesz mieć wszystkie wyniki to funkcja powinna wyglądać np tak:
i przetwarzaj wyniki np tak:
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Można zrobić coś na wzór PDOStatement::fetchAll jednakże nie jest to zalecane ze względu na optymalność pakowania całego wyniku jednorazowo w tablicę.
Osobiście raz się już na tym sparzyłem (tablica przekroczyła pamięć dostępną dla skryptu). Ten post edytował markonix 14.04.2012, 23:59:39 -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.05.2025 - 05:40 |