Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wykorzystanie tablicy php w bazie MySQL
cudny
post
Post #1





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Witam

Zastanawiam się nad użyciem tabeli tymczasowej (create temporary table).
Niestety nie jest to najbardziej wydajny sposób aby tworzyć tabelę w locie i wpisywać do niej dane, więc stąd moje wątpliwości.
Chodzi o to, że mam w tablicach zapisane dane powiedzmy tak jak poniżej:
  1. $table[] = array('id' => 1, 'czas' => "2010-02-25 15:00:00");
  2. $table[] = array('id' => 1, 'czas' => "2010-02-25 16:00:00");
  3. $table[] = array('id' => 2, 'czas' => "2010-02-25 17:00:00");
  4. $table[] = array('id' => 3, 'czas' => "2010-02-25 18:00:00");
  5. $table[] = array('id' => 3, 'czas' => "2010-02-25 19:00:00");
  6. $table[] = array('id' => 3, 'czas' => "2010-02-25 20:00:00");
  7. $table[] = array('id' => 4, 'czas' => "2010-02-25 18:00:00");

Do tego jest jest tabela w bazie MySQL do której chciałbym utworzyć złączenie (left join) poprzez id.
Moja koncepcja jest taka, że tworzę tabelę tymczasową i insertuję do niej wszystkie pozycje tablicy, no i potem mogę sobie utworzyć to moje upragnione złączenie.

Moje pytanie jest następujące:
Czy zna ktoś inny sposób wykorzystania tablicy z php w bazie MySQL ?

pzdr
Cudny













--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A napisz jeszcze po co ci to złączenie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pilsener
post
Post #3





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Możliwości masz dwie:
1. Użycie IN:
  1. SELECT * FROM tabela WHERE pole IN(23,45,67)
- gdzie te identyfikatory scalasz:
  1. $id = join(",",$tablica);

Czyli wrzucasz elementy tej tablicy bezpośrednio do zapytania, które potrzebujesz

2. Użycie LOAD DATA... - po prostu zapisujesz tablicę jako plik .csv i wrzucasz od razu do bazy jednym zapytaniem korzystając z instrukcji LOAD DATA IN FILE - jest to od 2 do 10 razy szybsze od insert (w zależności od potrzeby obróbki pliku, liczby indeksów etc.)

Edit: nie to bbcode winksmiley.jpg

Ten post edytował Pilsener 26.02.2010, 10:38:25
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 04:50