Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Co będzie lepsze
Adam_
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 4.12.2009

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


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 (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
skarabe.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 142
Pomógł: 49
Dołączył: 29.07.2010

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


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.
Go to the top of the page
+Quote Post
Adam_
post
Post #3





Grupa: Zarejestrowani
Postów: 47
Pomógł: 2
Dołączył: 4.12.2009

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


Dzięki za odpowiedź (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

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: 3.10.2025 - 16:54