![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mam dwa pytania:
pierwsze: chce pobrac ilosc rekordow z tabeli i jakie zapytanie do mysql'a jest szybsze: [sql:1:b80023d511] $row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt FROM tabela")); $ile=$row[qnt]; [/sql:1:b80023d511] czy: [sql:1:b80023d511] $ile=mysql_num_rows(mysql_query("SELECT id FROM tabela")); [/sql:1:b80023d511] czesto sie nad tym zastanawiam, sam czesciej uzywam tego pierwszego, uwazam, ze tam tylko liczy ile jest wierszy, a nastepnie zamienia wyniki na tablice. A w drugim przypadku: pobiera wszystkie id i liczy ich ilosc, ale czy po pobraniu id sa one przechowywane w pamieci, bo jak tak, to druga wersja potrzebuje wiecej pamieci. Drugie pytanie: jak lepiej zrobic wysylanie subskrypcji: czy poprzez: header a w nim BCC: adres1@cos.pl, adres2@cos.pl, ... i tak wiecej adresow, czy przez petle i uzywanie funkcji mail dla kazdego adresu email. ps. czesciej chyba jest wykorzystywany ten drugi. Z góry dziekuje za odpowiedz. -------------------- |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat [sql:1:1cbba8a4d7]
$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt FROM tabela")); $ile=$row[qnt]; [/sql:1:1cbba8a4d7] Tutaj: 1 row in set (0.00 sec) Cytat czy:
[sql:1:1cbba8a4d7] $ile=mysql_num_rows(mysql_query("SELECT id FROM tabela")); [/sql:1:1cbba8a4d7] Tutaj: 621 rows in set (0.19 sec) Czyli pierwsze jest lepsze (szybsze); Cytat jak lepiej zrobic wysylanie subskrypcji:
czy poprzez: header a w nim BCC: adres1@cos.pl, adres2@cos.pl, ... i tak wiecej adresow, czy przez petle i uzywanie funkcji mail dla kazdego adresu email. ps. czesciej chyba jest wykorzystywany ten drugi. Z góry dziekuje za odpowiedz. Polecam drugi sposób. Może to trwać dłużej przy większej liczbie emaili, ale jest "prywatniejsze". (gość dostaje email tylko ze swoim adresem, a nie kilku osób dodatkowo). |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 158 Pomógł: 0 Dołączył: 29.06.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Polecam drugi sposób. Może to trwać dłużej przy większej liczbie emaili, ale jest "prywatniejsze". (gość dostaje email tylko ze swoim adresem, a nie kilku osób dodatkowo).
Tylko ze naglowek BCC (jesli dobrze pamietam, czy to ten) powoduje, ze jest widoczny tylko jeden adres, tej osoby do kogo wysylamy emaila, pozostale sa nie widoczne. Zatem w obu przypadkach jest widoczny tylko jeden adres, stad, chyba pierwszy sposob jest lepszy, bo jest szybszy. -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) ![]() ![]() |
Co do liczenia: pierwszy sposob jest bezkonkurencyjny. MySQl dla takiego zapytania nawet nie otwiera tej tabeli tylko tak podstawowa informacje ma zapisana na boku. No i oczywiscie w ogole nie musi przesylac zawartosci tej tabeli do klienta, bo przesyla dokladnie jeden wiersz z wynikiem.
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 0 Dołączył: 28.07.2003 Skąd: Brwinów koło Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Jesli chodzi o licznik to zdecydowanie pierwszy sposob.
Polecam rowniez pojscie krok dalej i zastapienie: [php:1:f5e6cd2e05]$row=mysql_fetch_array(mysql_query("SELECT COUNT(*) AS qnt FROM tabela")); $ile=$row[qnt];[/php:1:f5e6cd2e05] kodem: [php:1:f5e6cd2e05]$ile = mysql_result(mysql_query("SELECT COUNT(*) AS qnt FROM tabela;"), 0);[/php:1:f5e6cd2e05] W ten sposob nie zmuszasz php do tworzenia zupelnie zbednej tablicy a wynik zapytania SQL wrzucasz odrazu do zmiennej. -------------------- www.humor-na-gg.w.pl
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 13:17 |