MYSQL Tabela tymczasowa |
MYSQL Tabela tymczasowa |
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
|
|
|
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. |
|
|
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.
|
|
|
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
|
|
|
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. |
|
|
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
|
|
|
Wersja Lo-Fi | Aktualny czas: 11.06.2024 - 08:16 |