- Ubiquiti hálózati eszközök
- Linux - haladóknak
- Ubuntu Linux
- Hálózati / IP kamera
- Letartóztatták a bitcoin-Jézust
- Linux kezdőknek
- Milyen program, ami...?
- Mindenki AI-t akar, már 2025-re is eladták a HBM chipeket
- A franciáknak elege van abból, hogy minden gyerek mobilozik
- Súlyos adatvédelmi botrányba kerülhet a ChatGPT az EU-ban
Aktív témák
-
L3zl13
nagyúr
Két lehetőség.
Egyik simán feltételezve, hogy minden előadóhoz tartozik szám és viszont.
Ekkor legegyszerűbb:
select szam_id,cim,hossz,eloado_nev,szul_ido from szam, eloado where szam.eloado_id=eloado.eloado_id order by AKÁRMI
Vagy az univerzálisabb megoldás joinnal:
select szam_id,cim,hossz,eloado_nev,szul_ido from szam full outer join eloado on szam.eloado_id=eloado.eloado_id order by AKÁRMI
full outer join = mindkét tábla minden mezeje szerepel az eredményben, akkor is, ha nincs a másik táblában hozzá tartozó érték
vagy használhatsz helyette inner join = csak azok az adatok amelyek mindkét táblában szerepelnek (mint az első verzió)
left join = bal oldali táblából minden jobb oldaliból csak azok amelyek a bal oldaliban is szerepelnek
right join = előzőnek az ellentéteAki hülye, haljon meg!
-
L3zl13
nagyúr
$query_tema=''select tema_id,(select count(hozzaszolas_id) from hozzaszolas) as hozzaszolas, tema_cim from tema'';
Vagy
$query_tema=''select tema_id, count(hozzaszolas_id) as hozzaszolas, tema_cim from tema, hozzaszolas where tema.tema_id=hozzaszolas.tema_id group by tema_id,tema_cim'';
[Szerkesztve]Aki hülye, haljon meg!
-
-
L3zl13
nagyúr
Szerintem próbáld meg ezt:
$query_tema='select tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema_id,cim';
És a script végén a Do-while ciklusba beraksz még egy harmadik oszlopot a táblához, és egy ilyet:
<?php echo $row_tema['hozzaszolas' ; ?>
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
Ezzel már mennie kéne:
$query_tema='select tema.tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema.tema_id,cim';
És ne kérdezd le külön a témákat meg a hozzászólások számát, ebben már mindkettő benne van!
Az eredményként kapott tábla első oszlopa az id, második a cim, harmadik a hozzászólások száma.
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
A teljes kódon nincs kedvem túlrágni magam mert elég bonyolult.
De próbálom elmondani:
Alaphelyzet:
$query_tema = ''SELECT * FROM tema''; volt a lekérdezés.
Eredményeképp kaptál egy kétoszlopos tömböt amit kiírattál egy kétoszlopos táblába, soronként ciklusból.
A fenti lekérdezés HELYETT:
$query_tema='select tema.tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema.tema_id,cim';
Eredménye egy 3 oszlopos tömb. Amit egy 3 oszlopos táblába íratsz ki ugyanúgy mint az alapverzióban.
Az első 2 oszlop változatlan kell hogy legyen, a 3. oszlop neve ''hozzaszolas''. És az adott témához tartozó hozzászólások számát tartalmazza.
Semmi más művelet nem szükséges az alaphelyzethez képest.
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
Ha az SQL stringre gondolsz akkor:
select tema.tema_id, cim, count(hozzaszolas_id) as hozzaszolas from tema left outer join hozzaszolas on tema.tema_id=hozzaszolas.tema_id group by tema.tema_id,cim
Az eleje gondolom egyértelmű, a lényeg, hogy ne *-ozz mert akkor nem nagyon tudsz count meg hasonló kifejezéseket használni.Ehelyett szépen felsorolod azokat az oszlopokat amire szükséged van.
A count(xyz) azt jelenti, hogy nem kiírja egyenként az xyz-ket, hanem csak megszámolja őket.
Pl ha az lenne a query, hogy ''select count(tema_id) from tema'' akkor csak egy számot kapnál eredménynek. Mégpedig a témák számát.
az 'as hozzászólás' azért van, hogy könnyebben lehessen hivatkozni a fügvény eredményeképp kapott mezőre kiíratáskor.
'from tema' gondolom egyértemű
left outer join - ezzel kapcsolod össze a két táblát, mégpedig olyan módon, hogy a baloldali tábla (left) minden eleme szerepel az eredményképpen kapott összesített táblában, míg a jobboldali táblából csak azok az elemek, amelyek az összekapcsolási feltételnek megfelelnek.
hozzaszolas - a másik tábla neve
on tema.tema_id=hozzaszolas.tema_id - Az összekapcsolási feltétel. Innen tudja, hogy a hozzaszolas táblábol melyik sor a tema tábla melyik sorához tartozik. (Ahol a tema_id -k megegyeznek.)
group by tema.tema_id,cim - csoportosítás tema_id és cím szerint. Ez azért kell, hogy a hozzászólások táblát a count-nál ne egybe vegye, hanem tema_id-nként számolja össze a hozzászólások számát.
Utolsó hozzászólóhoz szerintem külön lekérdezés kell.Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz VladimirR #49 üzenetére
Én nem mysql-es vagyok, de ha jól sejtem és a TEXT = CLOB, akkor valamelyik TEXT-et javaslom.
TEXT= Max 65kByte
LONGTEXT = Max 4GB.
Szerintem HTML formátumú cikknek is elég a 65kByte.
Ha akarod akár a képeket is tárolhatod az adatbázisban, de ennek nem sok értelmét látom.
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz burgatshow #64 üzenetére
mysql_query előtt miért van idézőjel a 8. sorban?
Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz burgatshow #67 üzenetére
Háát ebben már nem vagyok olyan biztos, de szerintem a 12. sorban sem kellenek idézőjelen a mysql_fetch_array függvényen belül. De semmiképpen sem lehet a két argumentum közös idézőjelben...
Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz burgatshow #69 üzenetére
A mysql_query-nél eredmÉny van a fetch-nél meg eredmEny.
És szerintem nem kell idézőjel...Aki hülye, haljon meg!
-
L3zl13
nagyúr
PH-n is submitol. Vagy arra gondolsz, hogy ne kelljen külön gombot nyomni?
Ahhoz a select boxnál be kell állítani az onChange eseményre a submit-ot. (vagy egy átirányítást, és GET-es értékátadást, mint itt a PH esetében)
Mellesleg nem gondoltál még olyanra, hogy esetleg megnézd az oldal forrását, és egy kis önszorgalommal kilogikázd saját magad?
Ez már régen nem PHP+MySQL kérdés...
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
MySQL adminban be lehet állítani.
De a tárhelyszolgáltatók csak egy felhasználót szoktak létrehozni/tárhely. Éppen ezért szerintem a jogosultságállításra sincs lehetőség. De ha van-is rá lehetőség, egy felhasználónál minek?
Szóval, ha ilyet akarsz akkor ahhoz már biztos, hogy kell tőlük segítség.Aki hülye, haljon meg!
-
L3zl13
nagyúr
Minden megvalósítható az üzemeltetők segítségével.
Ingyen tárhelyen szvsz esélytelen.
A másik, hogy tényleg szükség van-e erre, hiszen biztonság szempontjából ez max az SQL inject ellen nyújt védelmet. Az oldalon belüli, szabályos lekérderéseket úgyis tudod szabályozni, hogy engedélyezed-e valakinek elküldeni, egy sima weboldal szintű felhasználókezeléssel.
Az SQL inject ellen meg úgyis lehet és kell is védekezni, tekintve, hogy a te esetedben még csak nem is read-only jogokról van szó.Aki hülye, haljon meg!
-
L3zl13
nagyúr
Szvsz nem annyira a favágással van baj, hanem a logikával.
if/elseif szerkezetnél megadott feltételnél természetes, hogy csak az egyik ág fut le
Az, hogy a szöveg kiiratását ciklusból végzi, vagy sem szerintem ehhez képest másodlagos probléma.
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz Realradical #523 üzenetére
A session_register függvényt nem szükséges használni már egy ideje (PHP 4.1 óta).
Helyette simán deklarálhatod a változót úgy, hogy értéket adsz neki a session superglobal tömbben.
Pl. $_SESSION['counter']=1;
Elérése pedig ugyanígy, a $_SESSION tömbön keresztül történik.
echo 'A számláló állása: '.$_SESSION['counter'];Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz Realradical #526 üzenetére
A session_start() megvolt a mindkét php elején??
[Szerkesztve]Aki hülye, haljon meg!
-
L3zl13
nagyúr
Jah, értelmezési segítségként:
A 3 sor kód batch script.
Értelem szerűen a 2. sor a lényeg, ami a %TIME%-ot szétszedi darabokra (a delims után felsorolt karaktereknél elvágva!) majd belerakja egy dt nevű változóba a megadott formátumban. (Jelen esetben elválasztó karekterek nélkül.) %%i az óra, %%j a perc, %%k a másodperc.
%DATE%-nél hasonlóképpen, csak ott :,[space] helyett .[space] a szükséges elválasztó karekter.Aki hülye, haljon meg!
-
L3zl13
nagyúr
válasz Realradical #555 üzenetére
mdf? Alcohol DVD image?
Szerintem kénytelen leszel keresni egy sql szervert, vagy telepíteni egyet.Aki hülye, haljon meg!
Aktív témák
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Kerékpárosok, bringások ide!
- TCL LCD és LED TV-k
- Alapértelmezett konfiguráción sok Core CPU-nak lehet stabilitási gondja
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Ötletek, javaslatok, hogy még jobb legyen a PH! lapcsalád
- AMD GPU-k jövője - amit tudni vélünk
- Modern monitorokra köthető 3dfx Voodoo kártya a fészerből
- gban: Ingyen kellene, de tegnapra
- További aktív témák...