22786
Html-, css- és php-help
  • MerlinW
    #13861
    Csinálsz egy admin felületet, egyik részében töltöd a műfajoka, az ismertető részben pedig listázod a műfajokat és hozzárendelgeted az ismertetőhöz, a műfaj elsődleges azonosítóját felhasználva.

    insert into mufaj set mufaj_nev="mufaj_input_tartalma"
    insert into ismerteto set mufaj_id="mufaj_select_tartalma", ismerteto_neve="imserteto_input_tartalma"

    Ahol a mufaj_select_tartalma = mufaj_id.
  • MerlinW
    #13860
    10 millió fölött. Persze ez függ a hardvertől, az SQL szerver beállításától és persze elsőrorban a programozótól.

    Ajánlom figyelmedbe a mysql.com-ot.
  • biomage
    #13859
    Látom majdnem mindenki a 2 példát tartja jobbnak, akkor 1 kérdés, 1MP alatt hány rekordot tud átnézni? 1 millát?

    Más
    ha már a 2 példánál járunk, hogy csináljam meg a többszörös insert intot? mert ugye 1 ismertetőnek tuti nem 1 műfaja van, szal több rekordos feltöltést kell egy phpba írnom
  • MerlinW
    #13858
    Hamár gányolunk, a törlés:

    UPDATE tabla SET mezo = REPLACE(mezo, ",13,", ",") WHERE mezo LIKE '%,13,%' AND id=x

    De még mindgig azt mondom, hogy ez undorító analfabéta megoldás.
  • Vaxi
    #13857
    viszont a törlés ilyen módon borzasztó macerás.
  • QuippeR
    #13856
    ha a felsorolást úgy csinálja meg, hogy vesszővel végződik és vesszővel kezdődik, akkor egyszerűen like-kal is tud zsánerre keresni. nem lesz gyorsabb mint a lekérdezés, de nem kell másik táblához joinolnia, amivel viszont nyer egy kis futási időt.

    hogy érthető legyek, ha a genre_id mezőbe azt írod be, hogy például: ",1,4,13,102,", akkor a "WHERE genre_id LIKE '%,13,%'" feltétellel ki tudja listázni az összes 13-as zsánerű animét.

    változtatásnál egy ilyen stringet összerakni checkboxok alapján ugyanolyan egyszerű mint külön sorokba írni az adatbázisban.


    de egyébként valóban, normálformára hozva ennek az információnak egy külön táblában kéne lennie, amiben genre_id és anime_id egy sor tartalma.
  • joebacsi
    #13855
    Ha egy ismertetőhöz több műfaj is tartozhat, akkor az több-több kapcsolat, és kell hozzá egy segédtábla, amivel meg tudod oldani.

    Adatbázis tervezésnek kicsit olvass utána, ne csak ész nélkül kódolj.
  • Vaxi
    #13854
    végigmenni a sorokon.
  • Vaxi
    #13853
    srácok ne akarjunk már sql lekérdezési idővel foglalkozni olyan adatmennyiség esetén, ahol a méret lényegtelen...
    majd ha többszázezres táblákat buzerálunk, na akkor el lehet gondolkozni.
  • Cat 02 #13852
    Kérdés az hogy mi gyorsabb. Explode-olni az összes hentai mezőt (ugye másképp nem látod aztán ráengedi egy in_array-t(mondjuk most így belegondolva, nem is kell akkor explodeolni :D) vagy végigmenni x soron, ami mysql-nek semmi perc alatt megvan.
  • biomage
    #13851
    Ha a lekérdezés megoldható explodeal akkor a checkboxra select kapcsolást is, és a szerkesztés meg is van oldva
  • MerlinW
    #13850
    Oké, nem vitatkozom, csinálsz amit akarsz:)
  • biomage
    #13849
    na ez az, a 3 példa lenne a legjobb, ott csak lenne mondjuk 70 műfaj és 1 genreid az ismertetőbe, szal max 71 rekordot néz meg 501 helyet

    szerkesztés? azt is simát megoldható összelehetne hozni
  • MerlinW
    #13848
    Ne aggódj, mysql 10millió rekordos táblából is másodpecen belül kérdez le.
    Gondolj bele hány rekordos táblák vannak az SG adatbázisában..:) A sok mező sokkal többet árt.

    Explode dolog oké, de gondolj bele, pl ha módosítani, cserélni stb szerenéd az adatokat. Amellett, hogy a te esetebne teljesen felesleges az a megoldás, lassú, kényelmetlen, plusz munka és randa.
  • biomage
    #13847
    a másodiknak lenne kis baja, ha mondjuk van már 50 ismertető és mindegyiknek lenne 10 műfaja akkor a genre táblában lenne 500 rekord sor, nem sok de azért lassan nézné meg az összes rekordot

    a 3 példa ebben gyorsabb lenne, csak oda explode parancs kell
  • MerlinW
    #13846
    És randa. Programozunk vagy gányolunk? Ez itt a nagy kérdés:D
  • biomage
    #13845
    A keresés is megoldható a 3 példánál, de az 1 kicsit bonyolult lenne.
  • MerlinW
    #13844
    Az első és a harmadik nonszensz, a második elképzelés életképes, pont azt írtam le az előző hsz-emben. Oké nem teljesen úgy, viszont helyesen.

    az anime.anime_id és mufaj.mufaj_id logikusan elsődleges autoincrement indexek.

    Ha nem világos a lenti példám, kérdezz, illetve kezdj el olvasgass némi SQL alapokat. Felsorolásra, redundáns dolgokra nem használunk mezőket, kizárólag rekordokat - amellett hogy gyorsabb, átláthatóbb, könnyen bővíthető, módosítható.

    Autoincrement típusú (AI) index esetén nem kell tölteni a mezőt, insert esetén automatikusan egyel növeli az előzőleg beszúrt rekordmező tartalmát. Ez mindig egyedi (unique), biztos pont a rekord azonosításra.
  • Malakai
    #13843
    Ha kevés bejegyzést akarsz, akkor 3-as példa, de nem lesz épp keresés barát a megoldás. Hogyha műfajok alapján szeretnél szűrni, akkor jobban jársz az inkább több bejegyzéssel.
    Amit írtam m:m kapcsolat lényege pedig, hogy amiben keresel ott ne szövegre keress, hanem id-re, tehát a anime_id és genre_id mezőket tartalmazzon a tábla, ami alapján szűrsz.
  • biomage
    #13842
    én meg a tiédet nem értem, na jó elírom még1x 1xerübben

    1 példa
    van egy ismertető tábla mysqlben, ebben lenne 1 mező ami a genre ill műfaj táblában az egyik rekordba irt id kódra mutatna
    "szal minden ismertetőnek lenne egy ilyen rekordja, a genre táblában, ezzel az lenne a baj hogy sok mezőt kell csinálnom a genre táblában.

    Ismertető tábla
    genreid=1

    Genre tábla
    id=1 mezö1=anime mezö2=game mezö3=ecchi és így tovább

    2 példa
    van egy mező az ismertető táblában a rekordjába egy kód lenne írva, a genre táblában ősz-visz 1 id + 1 műfaj mező lenne, ez úgy működne hogy írok egy id kódot és mellé egy műfajt, szal ha van egy ismertetőnek 20 műfaja akkor az 20 rekordot jelent, és minden ismertetőnek lenne id száma így lenne minden ismertetőnek külön rekordja minden műfajra.

    Ismertöte tábla
    Anime1"valami" genreid=1
    Anime2"másvalami" genreid=2

    Genre
    Id + müfaj
    "
    1 anime
    1 game
    1 ecchi
    2 anime
    2 game
    2 ecchi"<-- ezek itt rekordok


    3 példa
    Van egy mező az ismertető táblában a rekordjában pedig belene irva az összes genreid je, a genre ben lennének rekordok amibe belene irva a számok + a müfaj neve
    ez valahogy igy nézne ki

    Ismertető tábla

    Anime1 genreid"1,2,3"
    Anime2 genreid"2,4,5"

    Genre tábla
    id|müfaj
    1 |anime
    2 |game
    3 |ecchi
    4 |vigjáték
    5 |valami
    ennél nem kell rekordot csinálni minden egyes animére mert fixen lenne mert az ismertető táblájának az egyik mezőjébe íródna melyik is a megfelelő műfaj

    Remélem igy már érthető volt
  • MerlinW
    #13841
    Lehet, mert fáradt vagyok, lehet hogy azért mert nem tudsz fogalmazni, de a lényeg hogy 5. elolvasás után sem értem a szándékodat:)

    Játszuk akkor végig, javíts - lehetőleg tőmondatokban - ha valami nem jó.

    --- Struktúra ---

    tábla1: anime
    mezők: anime_id, anime_név

    tábla2: műfaj
    mezők: mufaj_id, anime_id, műfaj_név


    --- Péda tartalom ---

    Adatokkal ugye ez így néz ki:

    tábla1: anime
    1, anime1
    2, anime2
    3, anime3
    4, anime4

    tábla2: műfaj
    1, 1, műfaj1
    2, 1, műfaj2
    3, 2, műfaj3
    4, 3, műfaj4


    --- Lekérdezések ---

    Ahol az első anime-hez 2 műfaj tartozik (1,2) a másodikhoz 1 (a 3-as) a negyedikhez pedig jelen esetben egy sem.

    Ha listázni szeretéd az első anime-ket:
    select * from anime

    Ha listázni szeretéd az első anime műfajait:
    select * from műfaj where anime_id=1

    Ha listázni szeretéd az első műfajhoz tartozó anime-ket:
    select a.anime_id, a.anime_név
    from anime a, műfaj m
    where m.anime_id=1 and a.anime_id=m.anime_id

  • karajjj
    #13840
    fasza a logód
  • biomage
    #13839
    nem nem ara lenne, nem figyelsz? ismertetőt írtam, nem listát
    Tudod ahol 20 műfaj van írva 1 animére

    Ja genret :D
  • Cat 02 #13838
    Én így szoktam:
    select * from kategoria,hentai_lista where kategoria.id=henta_lista.kategoria_id .
    Szerintem ez a legegyszerűbb (és igen, *-ot sose használunk :D)
  • Malakai
    #13837
    Vagy keress rá gugliban, hogy mysql many-to-many relationship.
    És gondolom genre-t akarsz mindenhova írni, nem gerne-t.. :)
  • biomage
    #13836
    Hali

    Nem tudom eldönteni hogy csináljam meg, úgy hogy segítsetek :)
    Van 2 MYSQL tábla, az egyikbe ismertető van írva a másikba műfaj, a problémám hogy a műfaj rendszerére tudok 3 féle variációt de nem tudom eldönteni melyik a legjobb.

    01. az ismertetőben lenne egy gerneid mező amibe a gerne id száma lenne beírva, és a gerne táblában lenne 1-50 ig mező a neve mondjuk szám 1-50-ig, és persze a rekordba be lenne írva a műfajok neve

    02. az ismertetőben lenne egy kód, a gerne táblában lenne összesen 1 műfaj tábla és egy id és egy kód mező, és rekordokba egyesével lenne beírva a műfajok

    03. az valahogy így nézne ki, az ismertetőben lenne egy mező amibe be lenne írva például ez 5,9,31,100, a számok igazából id számok lennének a gerne táblában, és így olvasná ki mi van abban a rekordba írva
    "lenne 1 műfaj mező és lenne mondjuk 100 rekord mindegyik rekordban lenne egy id szám és egy müfaj név"


    Ha a 3 lenne a legjobb, akkor kell help :)
  • MerlinW
    #13835
    "2,4GHz-s régi fajta celeron van benne, másfél giga rammal, kerio tűzfallal, win xp-vel..."
    - Nem számít

    "A probléma azzal kezdődött, hogy szarakodott a java, nem mindig engedett linkekre kattintani, se firefoxxal, se explolerrel. Újra lett rakva a java, nem lett jobb... újra lett rakva ismét a java, "
    - Semmi köze a Javanak hozzá. Java nem egyenlő Javascripttel. Utobbit a böngésző értelmezi, nincs/nem kell hozzá külső program.

    "kipucolva a regisztritől elkezdve, minden a firefoxxal és az expolerrel együtt, aztán újra lett téve, és az eredmény az lett, hogy semmilyen oldal nem jön be tökéletese!"
    - Vírusra gyanakszom, vagy a tűzfal van hülyén konfigurálva. Kapcsold ki, nézd meg úgy jó-e.

    "lannal kap netet a gép"
    - Kukacoskodás, de LAN-on nem kaphat neten, max direktben vezetékesen:) A LAN (Local Area Network) mást jelent.

    Tehát teljesen kapcsold ki a tűzfalat. Ha nem segít, akkor kukacod van, próbálkozz trojan/vírusírtóval vagy a rendszer újratelepítésével.
  • Cat 02 #13834
    Null jó lesz. Vagy adj neki alapértelmezett értéket.
  • Mirci00
    #13833
    köszi, és még1x sorry...
  • biomage
    #13832
    Lenne még egy kérdésem :)

    Van egy MYSQL mező amiben nincs semmi írva, mármint a rekordjaiba, mit írjak a where be hogy azokat listáz ki amibe nincs írva semmi

    az egyik ismerősöm azt írta hogy ezt írjam
    mezőnév=null

    Mirci00: menj ide topik
  • Mirci00
    #13831
    sorry ha topikot tévesztettem... gondoltam ez html probléma lehet...
    akkor melyik topikba tudnának ezzel segíteni?
  • bracsek #13830
    Egyetlen javaslatom, hogy az ismerősöd kérjen meg valakit akinek az iq szintje annyira magas hogy nem itt kérdez ilyeneket.
  • Mirci00
    #13829
    Sziasztok! Egy elég érdekes problémával találkoztam az egyik ismerősöm gépén... 2,4GHz-s régi fajta celeron van benne, másfél giga rammal, kerio tűzfallal, win xp-vel...
    A probléma azzal kezdődött, hogy szarakodott a java, nem mindig engedett linkekre kattintani, se firefoxxal, se explolerrel. Újra lett rakva a java, nem lett jobb... újra lett rakva ismét a java, kipucolva a regisztritől elkezdve, minden a firefoxxal és az expolerrel együtt, aztán újra lett téve, és az eredmény az lett, hogy semmilyen oldal nem jön be tökéletese! SEMMILYEN!!! Se képek, se szinek, se háttér, csak a linkek söteten kiemelkednek az oldaról, és a szöveg is fekete vastagon szedett lett.....
    Van ötletetek, hogy mi lehet a baj és mi lehet a megoldás??? (lannal kap netet a gép, kerioból már minden lehetséges dolog ki van lőve, hátha az fogja meg, de még így sem javult a helyzet...)
  • MerlinW
    #13828
  • Voyager5
    #13827
    Hulye vagyok a temahoz de ez talan segit.
  • MerlinW
    #13826
    Gyors és nagyon hülye kérdés, de miután kutatni kezdek, hátha tudja valaki csípőből. Partner a nyomtatáshoz DPI független "12-es betüméretet" szeretne. Hány pixeles a "12"-es betüméret?:D

    Elvileg a 12pt, vagy 1pc, de nekem ez túl nagynak tűnik, nameg DPI függő. a 12px meg kicsi.
  • Cat 02 #13825
    fetch_array-jal végigmész rajta (vagy fetch_row, ha 1) és
    <input type="nev" value="'.$fetch['nev'].'" />
  • biomage
    #13824
    úgy gondoltam hogy csinálok egy inputba importálást "value" és azt küldöm fel, mármint mindent ami a mysqlben van rekord azt megszeretném szerkeszteni 1xre, és ezt egy submital, de már eldöntöttem, inkább soronként fogom módosítani, id behívással.
  • MerlinW
    #13823
    Nem teljesen értem:D

    Van egy táblád, amit bővítettél (ALTER) egy mezővel.

    Tisztázás végett: UPDATE felülír, SELECT lekérdez. Attól hogy mindkettőt "query"-ben adod ki, ne keverjük a fogalmakat:)

    Ha az összes rekordban értékkel szeretnéd feltölteni az új mezőt, akkor vagy WHERE feltétel nélkül adsz ki egy UPDATE-et a táblára:
    UPDATE tábla SET ujmező="konstans"

    vagy minden egyes rekordhoz külön rendelsz értéket, amit a PRIMARY vagy egy UNIQUE kulcs segítségével frissítesz.
    UPDATE tábla SET ujmező="érték1" WHERE id="rekordazonosító1"
    UPDATE tábla SET ujmező="érték2" WHERE id="rekordazonosító2"
    UPDATE tábla SET ujmező="érték3" WHERE id="rekordazonosító3"

    Ez utóbbit, logikusan ciklussal érdemes véghezvinni, amit a POST-olt értékekkel pörgetsz.
  • biomage
    #13822
    Hali

    1 kérdés
    van egy listám MYSQLben, írtam be ma 1 új mezőt, és tudni szeretném, ha csinálok egy olyan updates lekérdezést, ami minden sort lekér MYSQLböl inputba és csak egy submit van, feltudom küldeni a módosítót sorokat
    egy sima update el?