Hirdetés

2024. május 1., szerda

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)

Hozzászólások

(#901) D@ni88


D@ni88
addikt

Sziasztok.

update article set round(price) where id=254

Ez az update mért fut "ORA-00927: missing equal sign" hibára?

(#902) ArchElf válasza D@ni88 (#901) üzenetére


ArchElf
addikt

update article set price=round(price) where id=254

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#903) Azazello- válasza Sk8erPeter (#900) üzenetére


Azazello-
senior tag

a valaszok stilusa a magyaros. :)

de ez mar tenyleg ertelmetlen offtopic...
amit en irtam, arra bocsanatot kertem, tema lezarva reszemrol.

Egy jó nőt meghódítani, és nem elmesélni olyan, mint titokban átúszni a Csendes-óceánt.

(#904) Sk8erPeter válasza Azazello- (#903) üzenetére


Sk8erPeter
nagyúr

Nem tudom, te mit értesz "magyaros" alatt.
Saját hülyeségünk miatt másokat okolni (segítek: amit épp csinálsz), na, az lehet, hogy már inkább magyaros. :) Részemről is lezárva, peace!

Sk8erPeter

(#905) D@ni88 válasza ArchElf (#902) üzenetére


D@ni88
addikt

húúú, ezt tényleg benéztem :D ;]

(#906) #65304576 válasza martonx (#884) üzenetére


#65304576
törölt tag

Egy trükk Oracle-hez, máshol nem valószínű, hogy működik:

Az alapprobléma az, hogy tulajdonképpen egy folyamatos sorszám halmazt kellene előállítanunk, ami 1-től indul és valameddig tart. Naptár esetén értelemszerűen napokkal, de bármire jó lenne egy ilyen.
Nos, ezt így kell megoldani:

SELECT LEVEL cnt FROM dual CONNECT BY LEVEL <= 100;

Ez visszaad egy táblát, amelyben minden rekord egymás után következik és csak sorszám (konkrétan 1-től 100-ig). Ha ezt összekötjük azzal, hogy Oracle-ben (is) a dátumtípus és a numerikus értékek között lehetségesek műveletek és az 1 (egy) pontosan egy napot jelent, már készen is van egy táblánk, ami tetszőleges dátumsort képes megjeleníteni. A tábla csak a memóriában létezik, nem kell tárolni, nagyon gyorsan képezhető, beágyazható, kaphat alias-t, stb., mindent lehet vele csinálni. Pl.:

select
days.next_days,
to_char(days.next_days, 'DAY') name_of_day,
to_char(days.next_days, 'D') day_of_week
from
(SELECT trunc(sysdate) + LEVEL next_days
FROM dual CONNECT BY LEVEL <= 7) days;

Kisebb intervallumokra sokkal gyorsabb megoldás, mint a több táblás join. :)

[ Szerkesztve ]

(#907) Octopus21


Octopus21
aktív tag

Sziasztok!

Járok egy felnőtt suliba ahol már megszereztem két rendszergazdai szakmát és most készülünk a harmadikra aminek a neve webmester. Csináltunk weboldalt HTML-ben az még ment is de most elérkeztünk az SQL-hez és a PHP-hoz ahol teljes mértékben elvesztettem a fonalat és 1 hét múlva dolgozatot írunk belőle.
Igazából még kérdezni sem tudok, mert az egészről fogalmam nincs hogy melyiket mikor és miért használjuk, hogy függ össze, egy weboldalnál miért jó stb.

Tudna nekem segíteni valaki?

Annyi még, hogy a suliban az Xampp-ot használjuk, de rről is csak annyit tudok, hogy egy virtuális server.

Köszi.

[ Szerkesztve ]

(#908) rum-cajsz válasza Octopus21 (#907) üzenetére


rum-cajsz
őstag

Szia!

Szerintem ha ennyire nem tudod miről van szó, akkor ideje lenne talán egy könyvet elolvasni.
A fórumok nem arra valóak, hogy megtanulják helyetted a cuccot.
Ha van konkrét kérdésed, akkor arra biztos szívesen válaszol valaki, de most kb azt kéred, hogy magyarázzuk el neked, amit eddig magyaráztak neked a tanfolyamon.

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#909) Octopus21 válasza rum-cajsz (#908) üzenetére


Octopus21
aktív tag

Ok. Értem, majd nézegetek a neten anyagot aztán közben ugyis lesz kérdésem, csak megijedtem, mert nagy a káosz a fejemben aztán nem akarok én lenni a leghülyébb az osztályban.

(#910) ArchElf válasza Octopus21 (#909) üzenetére


ArchElf
addikt

Bármi konkrét kérdésed van, nyugodtan tedd fel.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#911) Octopus21 válasza ArchElf (#910) üzenetére


Octopus21
aktív tag

Okés. Köszi. Érdekel a dolog különben és azért is vagyok ideges hogy nem értem. Már találtam is irodalmat a neten ahol taglalják az sql php összefüggését, meg hogy kell táblát létrehozni stb.

(#912) ArchElf válasza Octopus21 (#911) üzenetére


ArchElf
addikt

A PHP-nak és az SQL-nek az ég világon semmi köze nincs egymáshoz. Lehet együtt alkalmazni őket, meg vannak kész modulok sql kezeléshez a php-ban, de a kettő teljesen külön világ.
Feküldj rá először az SQL-re adatbáziskezelésre:
- Relációs adatbázis-modell alapok
- Adatbázis, tábla, mező, rekord, adat-kapcsolat
- Normalizálás
- Adatbázis műveletek (adat lekérdezés, adat módosítás, struktúra szerkesztés)
- SQL alap szintaktika (ansi sql)
Ha mindezekkel megvagy, akkor kezdjél el foglalkozni a php-s sql modulokkal és szerver-típus specifikus sql utasítások megértésével.

Ha nem találsz a fentiekhez könyvet (bár könyvtárban biztos van adatbáziskezelés alapjaival foglalkozó könyv), akkor is a net tele van ezekkel, csak írd be az összes fenti témakört a google-ba...

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#913) Octopus21 válasza ArchElf (#912) üzenetére


Octopus21
aktív tag

Köszi. Access-ből már vizsgáztunk, az ment is, de ez azért komolyabb dolog.

[ Szerkesztve ]

(#914) martonx válasza Octopus21 (#913) üzenetére


martonx
veterán

Miért lenne komolyabb?
Eddig az adatbázisban lévő adatokat maga az access "mutogatta". Ezután meg készítesz egy webes felületet, és az mutogatja az adatbázisban lévő adatokat.
Sarkítva annyi a különbség, hogy itt nem lesz lekérdezés varázsló, meg űrlapkészítő segéd :DDD

Én kérek elnézést!

(#915) ArchElf válasza Octopus21 (#913) üzenetére


ArchElf
addikt

Ha access megy (táblák, kulcs, idegen kulcs), akkor csak az SQL van hátra.
Access-ben meg tudod nézni milyen SQL parancs van a query-k mögött egyébként.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#916) Sk8erPeter válasza martonx (#914) üzenetére


Sk8erPeter
nagyúr

Ezt bírom egyébként az ilyen sulis "webmester"-kurzusokban - legalábbis az alapján, amiket eddig hallottam, illetve olvastam (és ez is megerősíti) -, hogy mindenen átrohannak, mint egy őrült, az alapok normális lefektetése nélkül, hogy ebből is, abból is legyen egy kicsi, mindenből csipegetünk valamennyit, de pont annyit, hogy lehetőleg a diák egy árva szót ne értsen az egészből, és ne tudja összerakni, hogy most akkor mi a szar is ez az egész, ha önszorgalomból nem fekszik rá keményen.
Azt nem értem, miért nem építenek fel egy logikus struktúrát (nyilván naiv felvetés, de annyira azért nem földtől elrugaszkodott elképzelés). Legyenek ezek a nyelvek elkülönítve, ne ömlesztve tanuljanak mindent, hanem tematikusan, de akkor már legalább az alapok normális lefektetése után. Az még mindig többet ér, ha valaki kevesebb nyelvbe kóstol bele, de legalább azt biztosan tudja. Így a későbbi nyelveknél is esélyes, hogy jobban át fogja látni a logikáját az egésznek. Ha kevés az idő, akkor egyszerű a megoldás: kevesebb dolgot kell jobban átvenni, nem minden-mindegy alapon ömleszteni a trágyát a diák fejére.

Szerk.: OFF.

[ Szerkesztve ]

Sk8erPeter

(#917) martonx válasza Sk8erPeter (#916) üzenetére


martonx
veterán

Én lassan már válaszolni sem merek, mert folyamatosan megkapom, hogy egy öntelt, bunkó vagyok. Ilyen dolgokon busongani, filózni, amit egyesek - ha nagyon betegek/rosszindulatúak - akár magukra is vehetnek, hogy rosszat mondtam rájuk, már végképp nem merek.

Én kérek elnézést!

(#918) PazsitZ válasza Sk8erPeter (#916) üzenetére


PazsitZ
addikt

Anno én is egy OKJs suliba jártam. 1-2 tantárgy volt, amit normálisan oktattak. Az oktatás minősége, meg szerintem azért is rossz, mert az osztály 10%-20% százaléka, akit tényleg érdekel az oktatás, ezáltal előbb-utóbb a tanárok is így állnak az oktatáshoz. :(
Ezért, ha csak annyit tanultam volna meg, amit ott leadnak, sose jutottam volna semmire.
Volt bizonyos fokú előképzettségem, oracle és java plusz órákra jártam, egyetemi online ingyenes kurzusokon vettem részt és otthon is foglalkoztam a dolgokkal: netes anyagokból mysql-php kombóval képeztem magam.
Így jutottam valamire.

[ Szerkesztve ]

- http://pazsitz.hu -

(#919) ArchElf válasza Sk8erPeter (#916) üzenetére


ArchElf
addikt

Szerintem 20-30 óra alatt így lehet leadni (főleg olyanoknak, akiknek semmilyen tematikus előképzettségük nincs). Sokat gondolkodtam egy-két ilyen kurzuson, de mindig lemondtam róla amiatt, hogy a hallgatóság nagy része csak lelkes szerencsevadász lesz, tárgyi tudás nélkül. Ilyen körülmények között semmi tisztességes tudát nem lehet átadni/átvenni :(

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#920) martonx válasza PazsitZ (#918) üzenetére


martonx
veterán

igen alapvetően mindenki önképzéssel jut valamire, mert az oktatási rendszereink katasztrofálisak.
Sajnos sokan vannak akik inkább azt szeretnék ha fórumozók oldanak meg mindent helyettük, és ők tanítanának meg mindent nekik.

Én kérek elnézést!

(#921) retrox


retrox
csendes tag

Sziasztok.Mysql-es probléma:új oszlopot akarok beszúrni,ami egy meghatározás alapján feltöltődik rekordokkal. Pontosabban:Van egy user táblám,benne egy születési dátum mező.Az új oszlop amit létrehoznék az 'user_kor' mező.A cél az,hogy a születési dátumból kiszámolva automatikusan kitöltődjön a mező.A függvény megvan:
floor(DATEDIFF(now(), birthdate)/365.2425)
Akkor:
ALTER TABLE user ADD user_kor INT 'hogyan tovább?'
A segítségeteket előre is köszi.

(#922) ArchElf válasza retrox (#921) üzenetére


ArchElf
addikt

ALTER TABLE user ADD user_kor INT;
UPDATE user SET user_kor = floor(DATEDIFF(now(), birthdate)/365.2425);

De ez tök fölösleges, mert egyszer feltöltöd, és aztán frissítheted folyamatosan. Inkább csinálj egy view-t amiben ez az plusz számolt oszlop van:
CREATE VIEW user_korral AS SELECT *, floor(DATEDIFF(now(), birthdate)/365.2425) AS user_kor FROM user;

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#923) retrox válasza ArchElf (#922) üzenetére


retrox
csendes tag

Megnéztem az általad ajánlottakat:
Az első megoldásra te is írtad,hogy miért nem jó.Sajnos a második sem: e107 cms-el dolgozok,ez php alapokon működik,amihez még nem nagyon értek,de úgy gondolom,mivel az eredeti táblát használja a rendszer(regisztráció,belépés,keresés,adatváltozás) így minden feltöltés és lekérdezés onnan történik.így egy másolat táblának egy plussz oszloppal(amire kell,azt megcsinálja) nem sok hasznát veszem. Olyan megoldás kell,ami az eredeti táblába szúr egy mezőt,ami a születési dátum alapján automatikusan beirja a felhasználó korát.Esetleg ezt a selectes vértékmegadást mező létrehozásnál nem lehet valahogy használni?

(#924) bpx válasza retrox (#923) üzenetére


bpx
őstag

szó nem volt másik tábláról, nézetről annál inkább, és a tábla helyett a nézetből lekérdezni

(#925) retrox válasza bpx (#924) üzenetére


retrox
csendes tag

Persze,értem.Csak a kereső a táblákból,s annak mezőiből ad választási lehetőséget,nézetből nem.

(#926) retrox válasza retrox (#925) üzenetére


retrox
csendes tag

OK.Elfogadom.Csak azt mondjátok meg nekem,hogy érem el,hogy mondjuk óránként frissíti a mysql ezt:
UPDATE e107_user_extended SET user_kora=floor(DATEDIFF(now(),user_birthday)/365.2425);
vagy hogy kapcsolhatom egy meglévő php fájlhoz(ami sokszor kapcsolódik az adatbázishoz)

[ Szerkesztve ]

(#927) rum-cajsz válasza retrox (#926) üzenetére


rum-cajsz
őstag

Miért nem elég, ha egy selectben van neked?

Select username, birthdate, floor(DATEDIFF(now(), birthdate)/365.2425) kor
from users;

Ez így nem működik?

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#928) retrox válasza rum-cajsz (#927) üzenetére


retrox
csendes tag

Nem.A felhasználói oldalon meg kell jelenítenem a korát(közösségi oldal lesz)s ahhoz kell egy mező amely naprakészen tárolja a kort.Ezért kell legalább naponta frissíteni.

(#929) rt06 válasza retrox (#928) üzenetére


rt06
veterán

de ha a select-ben rakod ossze, akkor minden egyes lekerdezeskor ujraszamolja, s egyaltalan nincs is plusz adat tarolva, amit frissitened kellene

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#930) retrox válasza rt06 (#929) üzenetére


retrox
csendes tag

Tudom,hogy igazatok van,csak ez egy kész cms.Minden php-val van megcsinálva(ahhoz nem értek) úgyhogy nem szívesen piszkálnék bele.Talán kaphatnék egy egyszerű php kódot,amita cms-től függetlenül a feladatütemezővel naponta lefuttathatok.
Az adatbázis neve e107
a tábla neve: e107_user_extended
A mező neve:user_kora
Felhasználó név: e107
Jelszó:e107
Host:localhost

(#931) rt06 válasza retrox (#930) üzenetére


rt06
veterán

ha uj adatot akarsz megjeleniteni (marpedig lathatoan azt szeretnel), akkor vagy mindenkepp bele kell piszkalnod a php kodba, vagy ha az e107 ezt lekezeli, egyik esetben sem kell hozzanyulnod

a kulonbseg annyi, hogy egyik esetben (uj mezo, es update), megvaltozik az adattabla, ezert van a lekerdezes eredmwenyeben egy plusz mezo, mig masik esetben (select modositasa) a plusz adat a lekerdezeskor jon letre
ezt a plusz adatot mindenkeppen le kell kezelned, hogy hol, mikent jelenjen meg, fuggetlenul attol, hogy tarolva van-e az adat, vagy on-the-fly szamolod ki

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#932) martonx válasza retrox (#930) üzenetére


martonx
veterán

Ember, te háttal ülsz a lovon. Ha a PHP-be nem piszkálsz bele, lehet neked akárhány extra oszlopod, a jóisten se fogja azt megjeleníteni.

Javaslatom:
Dobd ki az e107-et. CMS-ből drupal, joomla, de leginkább a wordpress a nyerő. Ha nem vagy nagy php guru,akkor pláne a wordpresst javaslom. Csúnya, egyszerű kódja van, nagyon jó dokumentációkkal, ergo baromi könnyű plugint fejleszteni hozzá.

Ettől még kelleni fog az SQL módosítás, de az majdcsak a PHP pluginnel együtt fog bármit érni. Mysql topikba beleírtam a megoldást (ha már CMS, akkor a triggeres megoldást preferálnám az általam felvetett javaslatok közül).

Én kérek elnézést!

(#933) rt06


rt06
veterán

postgresql dump-jat ra tudom-e venni valahogy, hogy rendezve mentse a tablaban levo adatokat?

van egy tablam, amiben egy fat tarolok, s a szulo mezo foreign key a tabla id mezojere
a gond az, hogy a dump random (ha minden igaz, akkor aszerint, ahogyan a lemezen fizikailag tarolva van az adat) sorrendben menti a sorokat, es igy elofordul (eleg sokszor), hogy a mentett adatokat csak kezi rendezes utan tudom importalni az adatbazisba (mert olyan sort akar beszurni, ahol a szulohoz tartozo id-ju sor meg nincs az adatbazisban)

Politikailag korrekt, valamint munkahely- és gyermekbarát aláírás, amiben egyáltalán nincsen p*na.

(#934) retrox válasza martonx (#932) üzenetére


retrox
csendes tag

Azért e107,mert sokkal bővebb és felhasználó barát a modulkészlete,s az admin felülete. A skinekről nem is beszélve.Tudom,a legjobb a saját szerkesztés lenne,de még csak első éves webprogos vagyok.Még nincs php,nincsennek scriptek,viszont van html,css,cms,mysql és ey kis c# alap.Ebből kell gazdálkodnom.

(#935) retrox válasza martonx (#932) üzenetére


retrox
csendes tag

Megvan a helyes kód:
:))
<?php
$db_host = "localhost";
$db_username = "e107";
$db_pass = "e107";
$db_name = "e107";

mysql_connect($db_host, $db_username, $db_pass);
mysql_select_db($db_name);
mysql_query("UPDATE e107_user_extended SET user_kora=floor(DATEDIFF(now(),user_birthday)/365.2425)");
?>
:))
Kösönöm mindenkinek a segítséget.A feladat ütemezve,így naponta frissíti a kor mezőt.

(#936) martonx válasza rt06 (#933) üzenetére


martonx
veterán

postgresql dump-jával én is mindig megszenvedek. Elég ratyi megoldások vannak benne (mondjuk én régebbi 7.4-es, 8-as verziókat használok, 9-eseken már hátha javítottak valamit).

Én kérek elnézést!

(#937) Lacces


Lacces
őstag

Sziasztok!

Most tanulom az MSSql-t ez egy fantasztikus. Lennem kérdésem a Sum függvénnyel kapcsolatban, hogy ez tényleg nem támogatja az összeadást?

pl.: SUM( oszlop1+ oszlop2) -> nem fordul le, nem támogatja, nekem ezt írja ki.
de SUM(oszlop1- oszlop2) -> lefordul... Harmadiknak még én fordulok le a székről... :DDD

Mert elég érdekes ezt használni-> SUM(oszlop1) + SUM(oszlop2) + SUM(oszlop3) -> így okés neki.

(#938) bpx válasza Lacces (#937) üzenetére


bpx
őstag

a SUM arra való, hogy egy oszlopban levő értékeket adjon össze, nem pedig különböző oszlopokat

ettől függetlenül az összeadásnak még mennie kellene így is, bár lehet az MS SQL valamiért nem szereti

(#939) martonx válasza Lacces (#937) üzenetére


martonx
veterán

Pedig ez nálam simán működik (MSSQL 2008R2 Express):

create table #t (ertek1 int, ertek2 int)

insert into #t values (1,1)
insert into #t values (3,1)
insert into #t values (1,3)
insert into #t values (2,4)

select SUM(ertek1 + ertek2) from #t

Inkább olyanra tudok gondolni, hogy szemetesek az adataid (mondjuk null van köztük), és ez okozza a problémát.

Én kérek elnézést!

(#940) Lacces válasza martonx (#939) üzenetére


Lacces
őstag

Én is ugyanezt a rendszert használom :D 2008R2, meg intes táblák...
Furcsa, majd ahogy haladok a tanulásával meglátom.
Kívonás működik... csak az összeadás nem. (nincsenek benne nullák).

-Zeratul- Köszönöm neked is mennie kéne de mindegy, csak a könyv feladatsor részében volt ilyen, hogy adjak össze 2 oszlopot. Tanulmányaim során sem találkoztam ilyennel, hogy két oszlopot összeadni :)

Köszönöm a válaszokat! :R

(#941) Lacces


Lacces
őstag

Ilyen parancsot sem tud lefutatni... Már amit tegnap tudott, azt már nem tudja...

A SUM-os résszel van a baj... A feladat azt írja, hogy írja, hogy InvoiceTotal minus Sum of PaymentTotal and CreditTotal

A SUMos részen kívül a többi jó!

SELECT v.VendorName, i.InvoiceNumber, i.InvoiceDate,
i.InvoiceTotal-SUM(i.PaymentTotal)+SUM(i.CreditTotal)As BalanceDue
FROM Vendors as v Join Invoices as i on
v.VendorID= i.VendorID
ORDER BY VendorName

Hoppá! Most nézem csak... A fent említett 3 oszlop nem is int, hanem money típus!

Hogy kellene a SUM-os részt átírnom? :R

SZERK: Lehet én értelmezem félre az egész angol szöveget és valójában erre gondolhattak volna: invoiceTotal -- (PaymentTotal + CreditTotal)

[ Szerkesztve ]

(#942) Sk8erPeter válasza PazsitZ (#918) üzenetére


Sk8erPeter
nagyúr

Ja, hát a diák szempontjából ez a lelkesedés és szorgalom a jó hozzáállás ahhoz, hogy sikeres legyél abban, ami érdekel, a másik oldalról viszont az is tény, hogy ezt az érdeklődést akár meg is lehet teremteni azoknál is, akik korábban nem érdeklődtek az adott témakör iránt, csak ehhez ugye jó tanítási módszerek is kellenek.
Tipikusan a legrosszabb módszer az, hogy rábízzuk a diákra a piszkos melót, tanulja meg ő magától, rengeteg utánanézés és sikertelenség árán, aztán mi meg jól számonkérjük a tudását, és mossuk kezeinket. Az meg a tanár részéről nem mentség, hogy "dehát a diákok többsége úgyis leszarja", mert az ő dolga az, hogy megtanítsa az anyagot, lehetőleg minőségi formában...és erre nem lehet az sem válasz, hogy "dehát a tanár helyetted nem tanulhatja meg az anyagot" (sokszor ilyenkor ez a reflexszerű reakció) - valóban nem, de legalább kedvet és alapot adhat ahhoz, hogy foglalkozz vele, sokan épp az ellenkezőjét teszik ezzel a rohanással.

(#919) ArchElf : jaja, egyetértek, sajnos így van. Túl kevés az idő ahhoz, hogy stabil tudást átadjanak. De azzal a módszerrel, hogy tényleg mindent rázúdítanak a diákra, ami nagyjából a webfejlesztés kapcsán első körben igazán fontos lehet, csak rontanak a helyzeten, mert akkor tényleg semmit nem fog átlátni normálisan, amennyiben nem szán a saját idejéből rengeteget arra, hogy megtanulja az anyagot.

Sk8erPeter

(#943) Sk8erPeter válasza retrox (#930) üzenetére


Sk8erPeter
nagyúr

"csak ez egy kész cms.Minden php-val van megcsinálva"
És akkor mi van? :D
A Drupal is egy kész CMS, attól még modulokat lehet írni hozzá, ami a saját céljaidnak megfelelően jelenít meg adatokat.
Egyébként meg egyáltalán nem értem, hogy Te ezek szerint egy plusz lekérdezéssel, UPDATE-tel ki tudtad egészíteni az e107 működését, akkor miért ne tudnád annyival is, hogy miután már a felhasználó születési dátuma el van tárolva, ebből egy egyszerű lekérdezéssel megjeleníted az aktuális korát? Így legalább ütemezett update-ekre sem lenne szükség...
Szerintem valamit félreértesz az itt javasoltakból. A lényege, hogy ugye a születési dátumod nem túl sokszor változik jó esetben :D - ebből az adatból pedig "on-the-fly" bármikor ki lehet számolni az aktuális életkort, nem kell hozzá még PHP sem, elég MySQL-ből kiszámolni.

Egyébként meg martonx már mondta, de az e107 már régóta elavult, azóta más felhasználóbarát CMS-ek is bőven vannak.
Én mondjuk a Drupalt ajánlanám, bár azt hallottam, hogy a Wordpress kezdőknek ideális választás (vagy azoknak, akik haladók, és ezt jobban ismerik). Haladók a Drupal moduljaival is gyorsan elboldogulnak némi help olvasgatása után.

Sk8erPeter

(#944) Lacces válasza Lacces (#941) üzenetére


Lacces
őstag

Már lejárt az időlimit.

Ahogy ti is írtátok egy simát enged nekem is SUM-olni, na de úgy ahogy fentebb van, úgy már nem!

Ilyesmit dob ki: "it is not contain an either aggregator or a group by clause".

(#945) bpx válasza Lacces (#941) üzenetére


bpx
őstag

kezdjük azzal, hogy mit szeretnél lekérdezni
folytassuk azzal, hogy a SUM az oszlopfüggvény, tehát nem tudsz olyat mondani, hogy

select oszlop1, sum(oszlop2) from tabla1

mert a select oszlop1 több 'sort' ad vissza, a sum(oszlop2) viszont 1 darab értéket, és ez a kettő nem fér össze

a hibaüzenet mondja is a megoldást, ilyen esetben group by-olni kell

(#946) Lacces válasza bpx (#945) üzenetére


Lacces
őstag

Aham, köszönöm, pont azt akartam kérdezni amit te írtál, vagy is ahogy írtad az úgy jó :)

A GROUP BY-t melyik oszlopra kell kiadnom? Ezt próbáltam. De ugyanúgy jött a hiba. Hmm..

Jó meg van, működik, egyszerű példára megnéztem! És jó! A nem SUM-ra kell, okés. Tegnap próbálkoztam vele de akkor valamiért nem jött össze, lehet az álmosság :)

Köszönöm így felfogtam ezt a rejtélyt! :)

[ Szerkesztve ]

(#947) Lacces


Lacces
őstag

Egy magyarázatot kérnék. A correlated subquery, vagy összefüggő select (talán így van magyarul) elmagyarázását szeretném valakitől megkapni :)
Beágyazott Select-eket értem. De itt a WHERE feltétel rész miatt elakadok, hogy mi hogy van... :(
Nem igazán fogtam fel a működését.

SELECT VendorID, InvoiceTotal
FROM Invoices AS inv_main
WHERE InvoiceTotal >
(SELECT AVG(InvoiceTotal)
FROM Invoices AS inv_sub
WHERE inv_sub.VendorID = inv_main.VendorID)
ORDER BY VendorID, InvoiceTotal

Látom a leírást is hogy ciklusként működik, látom is a végeredményt.
Örülnék egy egyszerű példának magyarázatnak. :R

[ Szerkesztve ]

(#948) martonx válasza Lacces (#944) üzenetére


martonx
veterán

Ha értelmezed a hibaüzenetet, ez nem a sum hibája, hanem hibás az sql select-ed.

Én kérek elnézést!

(#949) martonx válasza Lacces (#947) üzenetére


martonx
veterán

ezt úgy értsd, mintha egy join lenne, csak csúnyább, futásidőben rosszabb, viszont sokszor kényelmesebb, és néha tényleg pont erre van szükség.

Én kérek elnézést!

(#950) Lacces válasza martonx (#948) üzenetére


Lacces
őstag

Yeap, a későbbi példákon már jött magától. Csak így az elején annyira új volt nekem.
Meg be kell szereznem egy angol barátnőm nyelvtanulás céljából :D

Útvonal

Fórumok  »  Szoftverfejlesztés  »  SQL kérdések (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.