Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
24.10.2009 19:53:43
|
|
|
koolitööga? mhh võimalik, inimene õpib kogu aeg elukoolis...
aga et siis pole võimalik võtta kokku delete from päringuid, kus on eraldi tabelid milles igas üks väli sama nime ja väärtusega? peab igast tabelist ikka eraldi kustutama?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
mrkaarel
HV vaatleja
liitunud: 08.07.2008
|
24.10.2009 22:23:32
|
|
|
MySQL paistab, et lubab ka mitmest tabelist kustutamist. Ise pole kunagi kasutanud ja sinu näite puhul julgen küll arvata, et see optimeerimine sulle jõudluses erilist võitu ei anna, aga eks proovi järgi..
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.10.2009 14:47:12
|
|
|
ma siin avastan vaikselt mysqli... sain sellise päringu kokku, mis ka töötab. kas selle DB_PAGES peab sinna lisama, kuna lihtsalt teistes tabelites ei pruugi väärtust olla? või saab ka ilma selleta?
$query = "
select pg.page_name,
case
when hp.page_id is null then '0' else '1'
end as hide_panel,
case
when hs.page_id is null then '0' else '1'
end as hide_subject,
case
when dp.page_id is null then '0' else dp.destination_id
end as destination_id,
case
when fp.page_id is null then '0' else '1'
end as tofirst_page
from %s as ps
left join %s as hp on (ps.page_id = hp.page_id)
left join %s as hs on (ps.page_id = hs.page_id)
left join %s as dp on (ps.page_id = dp.page_id)
left join %s as fp on (ps.page_id = fp.page_id)
left join %s as pg on (ps.page_id = pg.page_id)
where ps.page_id='%s'";
$result = $db->squery($query, DB_PAGES, DB_HIDE_MENUPANEL, DB_HIDE_SUBJECT, DB_DIRECT_PAGE, DB_DIRECT_TOFIRST_PAGE, DB_PAGE, $page_id) or sql_error(__FILE__, __LINE__); |
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
25.10.2009 14:58:19
|
|
|
krt, oleks ma ennem teadnud, et see joinimine nii kerge on. ma oleks ennem teinud selle ühe päringu asemel 5
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
2korda2
HV kasutaja
liitunud: 19.07.2003
|
27.10.2009 10:31:24
|
|
|
keevitaja kirjutas: |
krt, oleks ma ennem teadnud, et see joinimine nii kerge on. ma oleks ennem teinud selle ühe päringu asemel 5  |
Nüüd mõistad ka minu üllatust, kui küsisid JOIN olemuse kohta. Muide, "lihtne" on siin suhteline - valesti joinides saab kenasid prohmakaid teha Edu avastamisel
|
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
27.10.2009 20:31:46
|
|
|
nüüd jälle jännis. on kaks tabelit: imgs dirs
imgs:
img_id int
dir_id int
dirs:
dir_id int
kas saaks nüüd kõik dir_id välja võtta dirs tabelist ent lisada teave selle kohta, kas on see dir_id esindatud ka imgs tabelis. ehk siis midagi sellist:
array ('dir_id' => 7, 'in_imgs' => 0) kui ei ole, ja kui on, siis array ('dir_id' => 7, 'in_imgs' => 0)
on üldse ühe päringuga võimalik midagi sellist teha?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
27.10.2009 20:51:22
|
|
|
Teed GROUP BY dir_id järgi ja kasutad COUNT() agregaatfunktsiooni.
Kas sa oled mõelnud mõne PHP ja MySQL algaja raamatu läbilugemise peale?
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
27.10.2009 21:34:41
|
|
|
ei ole. milleks siis HV on
aga nali naljaks. mis raamatut sa soovitaksid ja kust seda saaks?
troglodyte kirjutas: |
Teed GROUP BY dir_id järgi ja kasutad COUNT() agregaatfunktsiooni.
|
aga kuidas see siis välja näeks?
ehk viitsid visndada midagi?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
27.10.2009 23:10:37
|
|
|
Esimese asjana tulevad meelde O'Reilly LAMP raamatud, näiteks - http://www.amazon.com/Web-Database-Applications-PHP-MySQL/dp/0596000413 (ei ole ise lugenud).
Kui ma su probleemipüstitusest õigesti aru sain peaks midagi sellist tulema:
SELECT COUNT(*), d.dir_id
FROM dirs d
LEFT JOIN imgs i ON i.dir_id=d.dir_id
GROUP BY d.dir_id |
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
27.10.2009 23:41:46
|
|
|
kuule see natuke vana ei ole? 2002 aasta. mingi 2nd edition on 2004
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
28.10.2009 00:09:34
|
|
|
Põhimõtted on samad, ei PHP ega MySQL SQL dialekt ei ole oluliselt muutunud.
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
|