Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Co będzie lepsze
Forum PHP.pl > Forum > Przedszkole
Adam_
Witam,

trochę się naczytałem na temat tego co jest lepsze do zliczania liczby rekordów w bazie i oczywiście wychodzi na count, ale nie jestem pewny czy w moim przypadku nie lepiej będzie użyć jednego zapytania ale z (SELECT * from ... ) zamiast dwóch innych, dlatego proszę o opinie ludzi znających się na rzeczy.

Pokrótce mam taki skrypt edycji:

- sprawdź czy istnieje rekord z podanym id
  • jeśli tak, to pokaż formularz, gdzie jego wartości są wpisywane automatycznie z bazy danych
  • jeśli nie pokaż komunikat o błędzie


i tutaj właśnie najpierw muszę sprawdzić czy istnieje taki rekord (czyli tutaj lepsze count), ale później muszę uzupełnić formularz danymi z bazy - trzeba zrobić drugie zapytanie do bazy i tutaj będzie (SELECT * from ...)

Wg Was lepsze jest to:
  1. $zapytanie = mysql_query("SELECT * from typy WHERE id='$id' and spotkanie='$spo'")
  2.  
  3. if(mysql_num_rows($zapytanie) > 0) {
  4.  
  5. $r = mysql_fetch_array($zapytanie);
  6.  
  7. $zmienna = $r['pole'];
  8. $zmienna2 = $r['pole2'];
  9.  
  10. }

czy to:
  1. $zapytanie = mysql_query("SELECT COUNT(*) AS ile FROM typy WHERE id='$id' and spotkanie='$spo'")
  2.  
  3. $array = mysql_fetch_array($zapytanie);
  4.  
  5. if($array['ile'] > 0) {
  6.  
  7. $zapytanie2 = mysql_query("SELECT * from typy WHERE id='$id' and spotkanie='$spo'")
  8.  
  9. $r = mysql_fetch_array($zapytanie2);
  10.  
  11. $zmienna = $r['pole'];
  12. $zmienna2 = $r['pole2'];
  13.  
  14. }


Wydaje mi się, że te pierwsze wyjście, bo jest tam tylko jedno zapytanie, ale chciałby być pewny smile.gif
skarabe.pl
Zdecydowanie pierwsze. Ze swojej strony jeszcze podpowiem, że jeśli sprawdzasz czy wiersz istnieje według klucza głównego, to wcale nie musisz używać COUNT(*) - wystarczy SELECT 1 FROM ... WHERE id = $id. Wyjdzie na to samo, a jest mimo wszystko troszeczkę szybsze.
Adam_
Dzięki za odpowiedź smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.