Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Poprawność funkcji łączących z bazą, Prośba o schematowe "dobre rady".
ixpack
post
Post #1





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Proszę kogoś elokwentnego o pomoc w poprawieniu niżej podanych funkcji (mój 1szy wątek i trochę się boję "was", ale musi być kiedyś ten 1szy raz (IMG:style_emoticons/default/winksmiley.jpg) ):

  1. function polaczenie()
  2. {
  3. $wynik = @new mysqli('ip.ip.ip.ip', 'login', 'haslo', 'baza');
  4. if (!$wynik) throw new Exception('Error with connection, please try later');
  5. else $wynik->autocommit(TRUE);
  6. return $wynik;
  7. }


To jedna z 2ch funkcji - ustanawiająca połączenie... Co powinienem w niej zmienić?

  1. function pobierz_nazwe_czegos($idczegos)
  2. {
  3. $idczegos = intval($idczegos);
  4. $lacz = polaczenie();
  5. $zapytanie = "select nazweczegos from tabelaczegos where idczegos = $idczegos";
  6. $wynik = @$lacz->query($zapytanie);
  7. if (!$wynik)
  8. return false;
  9. $ilosc_nazw = @$wynik->num_rows;
  10. if ($ilosc_nazw == 0)
  11. return false;
  12. $nazwa = $wynik->fetch_object();
  13. $lacz->close();
  14. return $nazwa->nazwaczegos;
  15. }
  16.  
  17. $nazwa = pobierz_nazwe_czegos($idczegos);





Tu pobieram tylko jedną nazwę elementu, gdzie znam konkretny id elementu - Jestem "samoukiem", gdzieś czytałem, gdzieś podpatrzyłem, sam napisałem... Dlatego "pytam", bo chyba sam lepiej nie wymyślę.

Ps. Czy muszę zamykać połączenie "$lacz->close();" jeżeli w funkcji 1 mam "autocommit(TRUE);"?

Dzięki za odpowiedź (IMG:style_emoticons/default/smile.gif)


ixpack
-------------
Łatwo jest być odważnym za murami własnego zamku...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ixpack
post
Post #2





Grupa: Zarejestrowani
Postów: 248
Pomógł: 55
Dołączył: 1.06.2010
Skąd: mam to wiedzieć?

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


Ok okłamałem Cię - ilość zapytań dotyczy serwera współdzielonego, wszystkich zapytań jakie są zadawane bazom danych (MySQL Administrator), mój skrypt zadaje czasami około 200 zapytań



Zdarza się, gdy osobnik chce zobaczyć wszystkie produkty w katalogu - wówczas ilość produktów to PRODUKTY + (PRODUKTY * PODPRODUKTY) - mam wszystkich produktów i podproduktów około 2500, jednak w katalogu jest maksymalnie około 50 produktów + sprawdzenie dostępności podproduktów. I tak 50+(50*3) = 200, oczywiście nie każdy produkt ma 3 podprodukty, niektóre mają 0, inne 5. I stąd te ilości zapytań - skrypt musi sprawdzić, czy dany podprodukt jest dostępny czy nie.

Wiem, że muszę zoptymalizować to wszystko, na początku nie sądziłem, że tyle tego będzie... Będę musiał połączyć zapytania ale ciągle mam nowe pomysły bo zacząłem się jquery interesować (nieważne), Czy można połączyć zapytanie tak, aby pobrało informacje o produkcie z bazy x oraz kolejne informacje z bazy y?

Ten post edytował ixpack 3.06.2010, 09:51:51
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: 15.10.2025 - 20:42