Aktív témák
-
L3zl13
nagyúr
-
L3zl13
nagyúr
Az a kérdés, hogy a két tábla azonos szerkezetű-e, és te azt szeretnéd, hogy az eredmény olyan lenne, mintha a két lekérdezés redményét összemásolnád, vagy az egyik táblában a másik táblához (valamelyik oszlopához) tartozó kiegészítő adatok vannak, és te azt szeretnéf, hogy a lekérdezés futtatásakor az eredmény egy sorban tartalmazza a közös elemhez tartozó adatokat mindkét táblából?
Ha nem világos, nézz utánna a join és az union kifejezésnek, a példákból érteni fogod, melyik micsoda. -
L3zl13
nagyúr
válasz
[HUN]Tyson #568 üzenetére
Nincs benne import gomb, de a tábla struktúranézet oldal alján van egy ''Szövegfájl tartalmának beszúrása a táblába'' link.
-
L3zl13
nagyúr
válasz
Cyberslider #561 üzenetére
Sql fájlt nem szöveges fájl feltöltésénél kell, hanem az importnál.
Méret limitált, ezért ha a fájlod nagyobb, mint 2 MByte, akkor darabolnod kell.
Sima szövegszerkesztővel (notepad stb.) megnyitod és tetszőleges sornál ''elvágod''. (Kijelölöd a hátralevő részt, és kivágod egy másik fájlba.)
Hacsak nincs bekapcsolva a sortörés, akkor minden parancs egy sor. Ha be van, akkor meg figyelj, hogy a vágás két sql utasítás közé essen.
[Szerkesztve] -
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. -
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. -
L3zl13
nagyúr
válasz
Realradical #526 üzenetére
A session_start() megvolt a mindkét php elején??
[Szerkesztve] -
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']; -
-
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ó. -
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. -
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] -
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... -
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...
-
L3zl13
nagyúr
válasz
burgatshow #64 üzenetére
mysql_query előtt miért van idézőjel a 8. sorban?
-
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] -
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. -
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] -
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] -
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] -
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] -
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éte
Aktív témák
Hirdetés
- Kínai és egyéb olcsó órák topikja
- ASUS ROG Ally
- Vezeték nélküli fülhallgatók
- Luck Dragon: Asszociációs játék. :)
- Netflix
- Szeged és környéke adok-veszek-beszélgetek
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- alza vélemények - tapasztalatok
- Egér probléma
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- További aktív témák...
- BESZÁMÍTÁS! ASUS Z97-A Z97 chipset alaplap garanciával hibátlan működéssel
- Telefon felvásárlás!! iPhone 14/iPhone 14 Plus/iPhone 14 Pro/iPhone 14 Pro Max
- MacBook Air 15 M3 8 / 256GB dobozos 12 hónap garancia
- BESZÁMÍTÁS! ASRock H310CM i3 9100F 8GB DDR4 240GB SSD 1TB HDD GTX 1060 3GB AeroCool Strike-X 500W
- AKCIÓ! Gigabyte H510M i5 10400F 16GB DDR4 512GB SSD GTX 1070 8GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest