Centrum Fanów Symulatorów » Hardware & Software » My SQL i PHP
Napisz nowy temat    Odpowiedz do tematu

My SQL i PHP

Idź do strony Poprzedni  1, 2, 3, 4, 5  Następny
Autor Wiadomość
M. C. Viper Audi
A4

Dołączył: 21 Paź 2005
Posty: 910
Miasto: Wrocław

Post2008-01-16, 18:29      My SQL i PHP Odpowiedz z cytatem
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
 
Reklamy
Presley


Dołączył: 23 Lis 2001
Posty: 1253
Miasto: Gdańsk GG:1006744

Post2008-01-16, 18:57      My SQL i PHP Odpowiedz z cytatem
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
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-01-16, 20:55      My SQL i PHP Odpowiedz z cytatem
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.
 
M. C. Viper Audi
A4

Dołączył: 21 Paź 2005
Posty: 910
Miasto: Wrocław

Post2008-01-16, 21:16      My SQL i PHP Odpowiedz z cytatem
dzieki wielkie chlopaki

musze sie doszkolic w MySQL bo coraz wieksze wymagania mam
 
M. C. Viper Audi
A4

Dołączył: 21 Paź 2005
Posty: 910
Miasto: Wrocław

Post2008-02-01, 10:58      My SQL i PHP Odpowiedz z cytatem
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
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-02-01, 15:58      My SQL i PHP Odpowiedz z cytatem
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.
 
M. C. Viper Audi
A4

Dołączył: 21 Paź 2005
Posty: 910
Miasto: Wrocław

Post2008-02-01, 16:33      My SQL i PHP Odpowiedz z cytatem
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.
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-02-01, 17:12      My SQL i PHP Odpowiedz z cytatem
Jesli masz autoincrement to nie ma takiej mozliwosci - muisisz pozniej zrobic selecta.
 
k3rmit


Dołączył: 11 Cze 2004
Posty: 789
Miasto: Tychy

Post2008-02-01, 18:37      My SQL i PHP Odpowiedz z cytatem
jest
znaczy jezeli uzywasz przy tym php to funkcja mysql_insert_id() zwraca ID ostatniego INSERTa
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-02-01, 19:51      My SQL i PHP Odpowiedz z cytatem
Czyli to to samo, co select
 
M. C. Viper Audi
A4

Dołączył: 21 Paź 2005
Posty: 910
Miasto: Wrocław

Post2008-02-01, 19:53      My SQL i PHP Odpowiedz z cytatem


wielkie dzieki!!!
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-02-01, 20:27      My SQL i PHP Odpowiedz z cytatem
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.
 
Yaper


Dołączył: 29 Sie 2002
Posty: 899
Miasto: Głowno - Warszawa

Post2008-02-02, 19:16      My SQL i PHP Odpowiedz z cytatem
Niestety Nogal nie to samo. Mozesz miec przypadek ze wstawiasz identyczne dane i nie dasz rady stwierdzic ktory insert jest "twoj".
 
Nogal


Dołączył: 18 Sie 2001
Posty: 5672
Miasto: Kraków

Post2008-02-02, 22:05      My SQL i PHP Odpowiedz z cytatem
Dlatego trzeba zachować ostrożność.
 
+JacKill+


Dołączył: 09 Maj 2005
Posty: 1360
Miasto: Okolice Kielec;)

Post2008-03-20, 00:34      My SQL i PHP Odpowiedz z cytatem
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++
 
Centrum Fanów Symulatorów » Hardware & Software » My SQL i PHP Idź do strony Poprzedni  1, 2, 3, 4, 5  Następny
Napisz nowy temat  Odpowiedz do tematu
Skocz do: