Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przerzucanie bazy danych., Po optymalizacji.
exseerius
post
Post #1





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 31.12.2006

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


Witam,

Napisałem sobie kiedyś prowizorycznie i na szybko program do raportowania wysyłek. Spieszyło mi się, więc nie dbałem specjalnie o optymalizację itp. Teraz jak już baza trochę waży powstała nowa wersja mego programu i działa na innej bazie danych, gdzie jest inny układ kolumn. Prawie udało mi się wszystko przewalić, ale zatrzymałęm się w miejscu.

Otóż mam takie coś:
  1. INSERT INTO db2.dokumenty (id_wysylki , nazwa , pesel , numer , uwagi)
  2. SELECT ch_id , name , p_n REGEXP '^[0-9]{11}$', p_n REGEXP '^[a-zA-Z]{3}[0-9]{9}$' , uwagi FROM db1.dokumenty;


W miejscach, gdzie jest regexp wpisuje mi 1 lub zero, w zaleznosci, czy spelniony jest lub nie warunek, ale ja chcę, zeby wpisał mi wartość komórki (kiedys pole do trzymania numeru id wysylki, lub peselu odbiorcy bylo w tej samej kolumnie, teraz jest to rozwalone na dwie). Kombinowałem z IFami, ale nie wiem jak za bardzo ich użyć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

A i od razu pytanie bo też nie wiem. Czy jest jakaś możliwość wykonywania procedur na przykładzie:
  1. CALL nazwa_procedury(SELECT id_wysylki FROM db2.dokumenty);


Próbowałem i mi to zadziałać nie chce, ale może coś źle konstruuję zapytanie... W procedurze mam jedną zmienną, która jest identyfikatorem wysyłki, a później to już samo śmiga (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Dzięki za odpowiedź, pozdrawiam,

Ten post edytował exseerius 5.12.2008, 12:14:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
exseerius
post
Post #2





Grupa: Zarejestrowani
Postów: 55
Pomógł: 0
Dołączył: 31.12.2006

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


Tylko, że ja już mam zadeklarowaną procedurę w mysqlu - dość skomplikowana, i musi to chodzić na procedurze... ale nieważne, poradzę sobie z tym może poprzez php i małą petelkę (o matko ile zapytań bedzie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) )

A ktoś ma pomysły co do pierwszego problemu? Bo nie ukrywam bardziej mnie interesuje...

OK pierwszy problem rozwikłany, dla ciekawskich, użyłem CASE'a (dzikęki forum na goldenie).

  1. INSERT INTO db1.temp_dok (id_wysylki , nazwa , pesel , numer , uwagi)
  2. SELECT ch_id , name , CASE 1 WHEN p_n REGEXP '^[0-9]{11}$' THEN p_n END, CASE 1 WHEN p_n REGEXP '^[a-zA-Z]{3}[0-9]{9}$' THEN p_n END , uwagi FROM db2.dokumenty;


Nadal jednak nie potrafię poradzić sobie z procedurą. Zależy mi na niej, bo z tego co mi wiadomo, funkcje nie mają możliwości zapytań mysql, a w procedurze zawarty jest cały system dodawania rekordów i rozwalania ich pomiędzy wszystkie tabele z tabeli tymczasowej - nie chcę robić tego przez php, bo generuje mi się za duzo zapytan...
Go to the top of the page
+Quote Post

Posty w temacie


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: 7.10.2025 - 04:43