Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> MYSQL Tabela tymczasowa
kr3t
post 7.12.2003, 21:53:27
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.12.2003

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


Czesc,

Stworzylem sklepik w php, ale mam jeden problem,
chodzi o tabele mysql i jej automatyczne wykasowanie :

Gosc wchodzi na strone - zakladana jest tabela (z polami
ID, ID_TOWARU,ILOSC). z nazwa taka jak identyfikator sesji
Jak po skonczonych lub nieskonczonych zakupach skasowac ta tabele :?:

Czytalem cos o transakcjach/tabelach tymczasowych, ale praktycznie nie wiem jak to zastosowac....

Z gory dzieki.


--------------------
KR3T
Go to the top of the page
+Quote Post
adwol
post 8.12.2003, 00:47:52
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Cytat
Czytalem cos o transakcjach/tabelach tymczasowych, ale praktycznie nie wiem jak to zastosowac....

Tabele tymczasową tworzysz bardzo podobnie jak zwykłą, musisz tylko poprzedzić słowo kluczowe TABLE słowem TEMPORARY.
[sql:1:3966deb571]create temporary table ...[/sql:1:3966deb571]
Usuwa się ją identycznie jak każdą inną:
[sql:1:3966deb571]drop table ...[/sql:1:3966deb571]
Ponieważ tabele tymczasowe istnieją tylko w obrębie jednego połączenia, jeśli zamkniesz połączenie z bazą, wszystkie tabele tymczasowe zostaną usunięte.

Poza tym oprócz kilku wyjątków tabel takich używa się jak zwykłych.
Go to the top of the page
+Quote Post
uboottd
post 8.12.2003, 12:54:10
Post #3





Grupa: Zarejestrowani
Postów: 384
Pomógł: 0
Dołączył: 3.04.2003
Skąd: Chorzow

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


Dodam tylko ze nazwy tabeli sa musza byc unikalne tylko w obrebie jednego polaczenia (wiec nie musisz generowac jej nazwy, moze zawsze tworzyc taka sama). Uwaga na polaczenie persistant - to jest jedno polaczenie.
Go to the top of the page
+Quote Post
kr3t
post 14.12.2003, 22:16:18
Post #4





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.12.2003

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


Hmmm... no tak niby wszystko ok.... ale tylko na chwile.

Mianowice lacze sie ze strona on przy wejsciu tworzy koszyk ( tabele ), ale po 1 akcji dodawania .. juz wszystko znika....
jakgdyby gubilby polaczenie lub sie laczyl ponownie...

Czy to ze mam na poczatku skryptu mysql_select_db("baza");
moze jakos wplywac na to?


--------------------
KR3T
Go to the top of the page
+Quote Post
adwol
post 14.12.2003, 23:07:53
Post #5





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

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


Jest to normalne zachowanie gdy łączysz się za pomocą mysql_connect. Wtedy każdorazowe uruchomienie skryptu (żądanie/wyrenderowanie strony) to osobne połączenie z bazą

Do przechowywania danych między poszczególnymi wywołaniami używaj raczej sesji niż tabel tymczasowych. Jeśli jednak koniecznie chcesz je wykorzystać zainteresuj się funkcją mysql_pconnect.
Go to the top of the page
+Quote Post
kr3t
post 15.12.2003, 21:07:58
Post #6





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 7.12.2003

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


Dzieki za tak szybka odpowiedz...
chyba jestem w polowie drogi... doslownie, bo co drugie klikniecie lapie i widac co jest w tej tymczasowej bazie ... ale doslownie co drugie... 8O

Oto poczatek prostego kodu ( ktory nie wiem czy potrzebnie jest wywolywany za kazdym razem )
[php:1:63481e12ec]<?php

$conn = mysql_pconnect("localhost","user","pass");
mysql_select_db("baza");
if (mysql_errno()) {
echo mysql_error() . ": " . mysql_errno() . "<br>n";
exit;
}

$nazwa_ttabeli=session_id();
mysql_query("CREATE TEMPORARY TABLE $nazwa_ttabeli (
id INT(3) NOT NULL auto_increment,
id_produktu INT(7) NOT NULL,
ilosc INT(5) NOT NULL,
PRIMARY KEY (id))");
?>[/php:1:63481e12ec]

Moze trzeba jakies warunki dodac
- czy bylo juz nawiazane polaczenie z baza
- czy zostala juz utworzona tymczasowa tabela...

( ale jak to w PHPie napisac... ? ) - nie wiem.


--------------------
KR3T
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 Wersja Lo-Fi Aktualny czas: 11.06.2024 - 08:16