| Autor | Wiadomość |
M. C. Viper Good Driver

Dołączył: 21 Paź 2005 Posty: 459 Skąd: Leamington, UK GG: 10444
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| dzieki kermit!
sprawdze jutro
chlopaki z php.pl podali taki kod dla odmiany:
| Kod: |
SELECT *
FROM list l, categories c, types t, divisions d
WHERE l.category=c.id AND l.type=t.id AND d.division=d.id
ORDER BY c.order, t.order
|
|
|
Wysłany: Sro Sty 16, 2008 6:29 pm | |
 |
Sponsor
|
|
 |
Presley Master of wheel

Dołączył: 23 Lis 2001 Posty: 1157 Skąd: Gdańsk GG:1006744
| Browser: Opera/9.21 (Windows NT 5.0; U; en) Temat postu: |  |
| coz, nie podales paru szczegolow, obie rzeczy pewnie zadzialaja, ale są drobne roznice
u kermita dostaniesz w wyniku mniej kolumn (a tobie z tego co napisales chodzi wylacznie o tabele LIST
2xLEFT JOIN moze wymagac wiejcej na serku)
to z php.pl zadziala szybciej teoretycznie dla wiekszych tabel o ile bedą indexy dobrze pozakladane, ale wynik bedzie duzy, wiecej kolumn dostaniesz, no chyba ze w select zamiast * dasz l.*
u kermita dostaniesz wiersze z LIST nawet jezeli nie bedzie okreslonego typu bądź kategorii (dzieki JOIN), w php.pl wierszy ktore nie maja tych powiazan nie zobaczysz (WHERE wykluczajace)
no i u kermita sprobuj w select dac samo l.*, ***powinno*** tez dobrze posortowac bez tworzenia dodatkowych kolumn, ale to juz sam sprawdź
ale to jak kermit napisal, na sucho, to da sie zjesc małą bułke w sklepie  |
|
Wysłany: Sro Sty 16, 2008 6:57 pm | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| Zeby zrobic ORDER BY nie trzeba zwracac tych kolumn po ktorych sortujesz, wiec najlepiej jest tak:
SELECT l.*
FROM list l
LEFT JOIN categories c ON c.id = l.category
LEFT JOIN types t ON t.id = l.types
ORDER BY c.category_order ASC, t.type_order ASC
Rozwiazanie z php.pl da ci nadmiarowe kolumny ze wszystkich tabel, co nie jest zbyt efektywne. |
|
Wysłany: Sro Sty 16, 2008 8:55 pm | |
 |
M. C. Viper Good Driver

Dołączył: 21 Paź 2005 Posty: 459 Skąd: Leamington, UK GG: 10444
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| dzieki wielkie chlopaki
musze sie doszkolic w MySQL bo coraz wieksze wymagania mam |
|
Wysłany: Sro Sty 16, 2008 9:16 pm | |
 |
M. C. Viper Good Driver

Dołączył: 21 Paź 2005 Posty: 459 Skąd: Leamington, UK GG: 10444
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| to jeszcze jedno
czy jest mozliwosc sformulowania takiego zapytania do MySQL zeby wstawic nowy wiersz do tabeli i zwrocic jego wartosc ID ?
zastanawialem sie czy jest mozliwosc zamiast zapytan INSERT i SELECT zmontowac je w jedno zapytanie.
na marginesie najlepsze okazalo sie zapytnie kermita dzieki |
|
Wysłany: Pią Lut 01, 2008 10:58 am | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; PM POLSKA S.A.; .NET CLR 1.0.3705; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727) Temat postu: |  |
| Jesli wstawiasz wiersz, to chyba wiesz co wstawiasz? Chyba, ze robisz SELECT INTO?
W standardzie SQLa INSERT nic nie zwraca, wiec nie ma takiej mozliwosci. Moze MySQL dysponuje jakimis mechanizmami. |
|
Wysłany: Pią Lut 01, 2008 3:58 pm | |
 |
M. C. Viper Good Driver

Dołączył: 21 Paź 2005 Posty: 459 Skąd: Leamington, UK GG: 10444
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
|
| Nogal napisał: |
| Jesli wstawiasz wiersz, to chyba wiesz co wstawiasz? Chyba, ze robisz SELECT INTO? |
wiem co wstawiam, ale nie wstawiam takich pol jak ID ktore ma atrybut "auto-increment" a to wlasnie chce uzyskac.
| Nogal napisał: |
| W standardzie SQLa INSERT nic nie zwraca, wiec nie ma takiej mozliwosci. Moze MySQL dysponuje jakimis mechanizmami. |
nie jestem pewien ale wydaje mi sie ze gdzies widzialem ze mozna pokombinowac i zlozyc 2 zapytania, cos w stylu:
SELECT costam INSERT costam.
zeby nie bylo, nie jest mi to do zycia potrzebne, po prosty wydawalomi sie ze gdzies to widzialem. |
|
Wysłany: Pią Lut 01, 2008 4:33 pm | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; PM POLSKA S.A.; .NET CLR 1.0.3705; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 2.0.50727) Temat postu: |  |
| | Jesli masz autoincrement to nie ma takiej mozliwosci - muisisz pozniej zrobic selecta. |
|
Wysłany: Pią Lut 01, 2008 5:12 pm | |
 |
k3rmit Top Driver

Dołączył: 11 Cze 2004 Posty: 734 Skąd: Tychy
| Browser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; pl) Opera 9.25 Temat postu: |  |
| jest
znaczy jezeli uzywasz przy tym php to funkcja mysql_insert_id() zwraca ID ostatniego INSERTa |
|
Wysłany: Pią Lut 01, 2008 6:37 pm | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| Czyli to to samo, co select  |
|
Wysłany: Pią Lut 01, 2008 7:51 pm | |
 |
M. C. Viper Good Driver

Dołączył: 21 Paź 2005 Posty: 459 Skąd: Leamington, UK GG: 10444
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
|
Wysłany: Pią Lut 01, 2008 7:53 pm | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| Znaczy, zeby nie bylo nieorozumien Przypuszczam, ze mysql_insert_id() bedzie szybszy, bo nie bedzie robil selecta, ale bral po prostu aktualny/kolejny numer z sekwencji. |
|
Wysłany: Pią Lut 01, 2008 8:27 pm | |
 |
Yaper Top Driver

Dołączył: 29 Sie 2002 Posty: 826 Skąd: Głowno - Warszawa
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| Niestety Nogal nie to samo. Mozesz miec przypadek ze wstawiasz identyczne dane i nie dasz rady stwierdzic ktory insert jest "twoj".  |
|
Wysłany: Sob Lut 02, 2008 7:16 pm | |
 |
Nogal Inhuman Poster ;)
Dołączył: 18 Sie 2001 Posty: 5565 Skąd: Warszawa
| Browser: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Temat postu: |  |
| | Dlatego trzeba zachować ostrożność. |
|
Wysłany: Sob Lut 02, 2008 10:05 pm | |
 |
+JacKill+ Top Driver

Dołączył: 09 Maj 2005 Posty: 916 Skąd: Okolice Kielec;)
| Browser: Opera/9.26 (Windows NT 6.0; U; en) Temat postu: |  |
| A ja zapytam z innej beczki. Zaczynam sie uczyc php i w związku z tym zassałem phpDesignera 2008. wszystko fajnie, ale wywala się pod Vista regularnie (używam XAMMP Lite). Polecacie coś w tym stylu (podświetlanie błędów składni, debug, run w 1 programie) i nie chodzi mi o notepada++  |
|
Wysłany: Czw Mar 20, 2008 12:34 am | |
 |
|
|