![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 21.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Ma zgoła dziwny problem, wydawałoby się łatwy, jednak nie daję rady. Główkowałem, potem google, przeszukałem forum i nie natrafiłem na nic podobnego. Do rzeczy.
No i pół "coś" wychodzi mi za mało, tzn. jedno, a w bazie są dwa. Sprawdzałem w phpmyadmin polecenie do bazy i się zgadza, więc pewnie coś w kodzie sknociłem. Proszę o pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
A tak działa? Ten post edytował Szeszek1992 21.01.2010, 23:54:46 -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Nieautoryzowani Postów: 2 249 Pomógł: 305 Dołączył: 2.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Po cholere Ci te "?
Kod $p=mysql_query("SELECT `cos`,`cus` FROM `prefiks_tabela`");
while($x=mysql_fetch_array($p)) { echo $x['cos']; } -------------------- Google knows the answer...
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Po cholere Ci te "? Kod $p=mysql_query("SELECT `cos`,`cus` FROM `prefiks_tabela`"); while($x=mysql_fetch_array($p)) { echo $x['cos']; } Zapytanie to tekst, są cudzysłowia, które można w tym przypadku użyć zamiennie z apostrofami. Ten post edytował Szeszek1992 22.01.2010, 00:06:32 -------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 31 Pomógł: 1 Dołączył: 21.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wiedziałem, że to coś w tym stylu 0_o.
Możecie mi jeszcze wytłumaczyć, dlaczego w tym miejscu nie mogę przypisać do zmiennej poprzedniej wartość zapytania, poszerzoną tutaj o fetch assoc? Bo ja to rozumiem tak. Moje $p w pierwszym wierszu wykonuje zapytanie do bazy. W while deklaruję zmienną o $p o wartości starej $p, z której można już coś wyciągnąć... Dlaczego w ogóle zwróciło jeden rekord wcześniej, jeśli nie do końca wszystko było ok? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Wyciągało tylko pierwszy rekord z bazy, ponieważ za pierwszym razem mysql_fetch_array() odnosiło się do tego, co zostało pobrane przez mysql_query().
Przy następnym zapętleniu odnosiło się do tego, co otrzymałeś z mysql_fetch_array() przy pierwszym zapętleniu. Nie jest to prawidłowy argument dla tej funkcji(gdyż jest to tablica, a nie "uchwyt"), dlatego też pętla zostaje zakończona(mysql_fetch_array() zwraca błąd). Dlatego też należało użyć zmiennej o innej nazwie. // Pomógł++ // ayeo -------------------- |
|
|
![]()
Post
#7
|
|
![]() 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!
W pierwszej iteracji Twoje $p zawiera wynik zapytania (dokładniej to zasó ![]() Pozdrawiam! -------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie zostaje wyświetlony żaden błąd, gdyż mysql_fetch_array() zostało umieszczone w while(), gdzie występuje coś w rodzaju funkcji warunkowej. Mysql_fetch_array() w przypadku sukcesu zwraca prawdę(tablicę z wynikami), w przypadku błędu lub zakończenia zasobów - false. Gdyby było to umieszczone normalnie w kodzie(poza while()), zostałby wyświetlony błąd.
Pozdrawiam, Szeszek1992 -------------------- |
|
|
![]()
Post
#9
|
|
![]() 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!
Niestety nie masz racji, ja zresztą też. Dostarczenie niepoprawnego parametru do mysql_fetch_assoc() nie wygeneruje błędu tylko ostrzeżenie - bez znaczenia czy to w pętli while czy bezpośrednio w kodzie. Pozdrawiam! -------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 29 Dołączył: 20.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ale przy "odpowiedniej", a w większości przypadków standardowej konfiguracji PHP warningi nie są wyświetlane(http://php.net/manual/en/function.error-reporting.php), stąd też w większości przypadków(jak i najprawdopodobniej w tym) Warning nie został wyświetlony.
Przepraszam za to niedopatrzenie. Pozdrawiam, Szeszek1992 PS. Na wszelki wypadek sprawdziłem w praktyce, jest tylko warning. Ten post edytował Szeszek1992 22.01.2010, 01:15:46 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 15:59 |