Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Jak wyzerować pozycję wskaźnika tablicy
Jarod
post
Post #1





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Mam mały problem. Przed właściwym pobraniem z bazy danych, najpierw sprawdzałem czy są jakieś rekordy w następujący sposób:
  1. $result = mysql_query('SELECT COUNT(rejs_id) FROM rejs WHERE data=''.$biezacaData.'' AND kierunek='o'') OR die ('Zapytanie nieudane!');
  2. $query_data = mysql_fetch_row($result);
  3.  
  4. IF ( $query_data > 0 )
  5. {
  6.  
  7. }
  8. else
  9. {
  10.  
  11. }


Doszedłem do wniosku, że wzrośnie szybkość wykonywania skryptu jeśli od razu pobiorę interesujące wiersze i sprawdzę czy wynik jest większy > 0.

  1. $result = mysql_query('...jakieś zapytanie') OR die ('Zapytanie nieudane!');
  2. $query_data = mysql_fetch_row($result);
  3.  
  4. while ($query_data = mysql_fetch_row($result))
  5. {
  6. ...
  7. ...
  8. //wyśiwtlanie danych na ekranie
  9. ...
  10. ...
  11. }


Z tym że w pętli jest jeden rekord mniej, bo już jeden pobrałem, żeby sprawdzić czy zapytanie zwróciło wynik (tym samym czy są szukane dane w bazie).

PYTANIE: Czy jest jakaś funkcja podobna do reset(), którą można zastosować w tym przypadku?
reset(mysql_fetch_row($result)); generuje warninga..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kamikaze_
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 3.05.2006

Ostrzeżenie: (0%)
-----


Imo nie potrzebnie sprawdzasz liczbe rekordów. Potem masz while, który je wyświetli jeśli będą. Jeśli nie będzie to nie wyświetli.
Go to the top of the page
+Quote Post
Jarod
post
Post #3





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

Ostrzeżenie: (0%)
-----


Cytat(kamikaze_ @ 30.07.2006, 17:46 ) *
Imo nie potrzebnie sprawdzasz liczbe rekordów. Potem masz while, który je wyświetli jeśli będą. Jeśli nie będzie to nie wyświetli.


Chcę zrobić tak, że jeśli są rekordy to je wyświetlamy. Jeśli nie to wypluwamy komunikat, że nie znaleziono rekordów.

Problem rozwiązałem poprzez usunięcie zapytania
  1. SELECT COUNT(*) ...

a dodanie czegoś takiego:
  1. <?php
  2. if ( mysql_num_rows($result) > 0 )
  3. {
  4. ...
  5. ...
  6. }
  7. ?>

---------


Do wyświetlania rekordów używam
  1. <?php
  2. while ( $query_data = mysql_fetch_row($result) )
  3. {
  4. ...
  5. }
  6. ?>


Czy można pobierać rekordy ale nie za pomocą while tylko odrazu foreach? While jest strasznie wolny przy pobieraniu np 60 pozycji i jeszcze obróbce (bo w pętli każdy wiersz jeszcze przygotowje do wyśiwetlenia - wstawiam w divy z różnymi stylami).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 02:47