![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Problem jest następujący - f while nie wyświetla wszystkich wpisów z bazy danych tylko jeden (pierwszy). W kodzie zawarte jest również porcjowanie danych na strony ale ono na pewno działa gdyż przy ustawieniu 1 rokurdu na stronę tworzy drugą (co prawda nic się nie zmienia) ale sam mechanizm znaczy ,że działa jak również num_rows który prawidłowo pokazuje 2. Wydaje mi się, że problem tkwi w drugim fetch_array dokładnie tu "while($resultat=mysql_fetch_array($zapytanie));" gdy dam do echo np. '.$resultat[2].' to nie wyświetla nic. Zaś gdy dam dokładnie to samo ponad linie z while - działa. Za grom nie mogę sobie z tym poradzić, proszę o pomoc. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Przeciez tutaj wyswietlasz $data i $opinia, ktore wyliczasz poza pętlą, dla wczesniej pobranego jednego rekordu. Olewasz callkowicie rekordy, przez ktore iterujesz w tej wlasnie petli -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ah wybacz źle to trochę wkleiłem, ja to cały czas piszę i jest bardzo roboczy kod dlatego mogłem wprowadzić Cię w błąd. Niżej w poście napisałem ,ze dodanie do niego np. '.$resultat[2].' nie powoduje zmian.
Swoją drogą dane danymi ale pustego diva powinien stworzyć skoro są 2 rekordy ? Bynajmniej tak mnie się wydaje. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 27 Pomógł: 9 Dołączył: 9.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Czyli masz coś nie tak z zapytaniem
posprawdzaj wartości zmiennych, które wykorzystujesz w zapytaniu, możliwe że tu leży przyczyna. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 7 Dołączył: 29.04.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Coś strasznie tu namieszałeś.
Polecam uzywać myql_fetch_assoc() zamiast mysql_fetch_array() Jak napisał kolega powyżej, nie używasz nowo pobranych danych. While sobie leci i nic z tego nie wynika. Kolejny problem wynikający z takiego rozwiązania: całkowicie niepotrzebnie pobierasz 2 krotnie to samo zapytanie. Raz bez LIMIT raz z LIMIT. Problem da się spokojnie rozwiązać pobierając to raz. Ale idąc Twoim sposobem kod powinien być taki:
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Zamiast mieszać z limitem lepiej chyba dać BETWEEN ...
W dodatku zobacz mysql_error" title="Zobacz w manualu PHP" target="_manual -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Sprawdzałem wszystko dokładnie, zresztą gdy zrobię w ten sposób :
To echo poprawnie wyświetla odpowiednie dane z rekordu, więc wina zapytania wydaje mi się ,że nie jest. Linijka niżej i już pustka.. Kasyx No wiem wiem tak wynika z kodu, źle opisałem już się poprawiłem ![]() Wpierw pobieram bez limitu ,żeby poprawnie wyliczył num_rows, a drugi raz dla poprawnego porcjowania danych. Niestety Twój kod nic nie zmienia ![]() Co najgorsze wykasuję te pierwsze fetch_array wraz z zmiennymi niżej i funkcją utnij i dalej jest bez zmian... fify2009 mysql_error zwraca mi 0; Ten post edytował liMp 29.07.2009, 13:43:44 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 7 Dołączył: 29.04.2009 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Jak chcesz pobrać tylko ilość rekordów to nie ma sensu wszystkich danych pobierać. O wiele szybciej zrobisz to tak:
Ten post edytował Kasyx 29.07.2009, 13:54:57 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Otrzymuję taki komunikat
Warning: Division by zero in c:\usr\krasnal\www\wiem\index2.php on line 40 Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\wiem\index2.php on line 44 linia 40
linia 44
To pobieranie ilości rekordów to i tak nic, bo najważniejsze dla mnie jest poprawne wyświetlanie czego dalej niestety nie robi ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 231 Pomógł: 22 Dołączył: 6.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?php $strona = 10; $rekordow_na_strone = 5; mysql_connect('localhost','user','pass'); mysql_select_db('baza'); $zapytanie = 'SELECT * FROM rekordy LIMIT '.(($strona-1)*$rekordow_na_strone).','.$rekordow_na_strone; $zapytanie = mysql_query($zapytanie); while($r = mysql_fetch_array($zapytanie)){ echo '<div>'.$r[2].'</div>'; } ?> Zobaczy czy taki kod ci zadziałaoczywiście pozmieniaj sobie dane do połączenia z bazą Ten post edytował fander 29.07.2009, 14:14:56 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mi nasuwa się pytanie czemu posługując się: mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual
Robicie coś na miarę tego:
Po 1. Lepiej użyć mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual po drugie macie ładną tablicę... $handle['nazwapola'] etc. Co do Jak chcesz pobrać tylko ilość rekordów to nie ma sensu wszystkich danych pobierać. O wiele szybciej zrobisz to tak:
Zgadzam się, aczkolwiek ja dodałbym po count(*) as count lub ilosc czy jak tam kto chce. Kod $zapytanie = 'SELECT * FROM rekordy LIMIT '.(($strona-1)*$rekordow_na_strone).','.$rekordow_na_strone; Mówiłem wcześniej o BETWEEN, w dodatku używaj poprawnego bbcode. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 22.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
O ja niemogeeeeeeeeeee
![]() while($resultat=mysql_fetch_array($zapytanie)); { echo ' <div id="szama"> '.$data.'<br> '.$opinia. </div> } Cholerny ";"... już działa.. przez php kiedyś osiwieje... przepraszam Wszystkich i wielkie dzięki za pomoc. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
O ja niemogeeeeeeeeeee ![]() while($resultat=mysql_fetch_array($zapytanie)); { echo ' <div id="szama"> '.$data.'<br> '.$opinia. </div> } Cholerny ";"... już działa.. przez php kiedyś osiwieje... przepraszam Wszystkich i wielkie dzięki za pomoc. Co nie znaczy, że masz zostawić skrypt w tak beznadziejnej postaci. Po 1. Edytuj zapytania tak jak doradzałem z kolegą. Po 2. Przebuduj ten skrypt bo wygląda i tak okropnie. Po 3. Włącz sobie wyświetlanie błędów. Ten post edytował fifi209 29.07.2009, 14:17:18 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 22 Dołączył: 14.12.2007 Skąd: Wyszków Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:24 |