Két tábla, egy kiírás
2008-12-23T23:43:08+01:00
2008-12-24T21:36:59+01:00
2022-06-29T07:20:23+02:00
  • Köszönöm, viszont és bocsánat! Ha lesz lehetőségem rá, azonnal adom az 50-et!!!

    Kösz még1*!
    Mutasd a teljes hozzászólást!
  • mivel átrakták állásba így nem tudsz.
    Ez van.

    Örülök, hogy megoldottuk.

    Boldog Karácsonyt! :)
    Mutasd a teljes hozzászólást!
  • nincs elfogadás megoldásnak link!
    Mutasd a teljes hozzászólást!
  • És TADAMM!!! Működik!!!!


    BOLDOG KARÁCSONYT!!!

    Most már csak egy kérdés, itt hogyan adjak pontot, mert megérdemled az biztos!!!!
    Mutasd a teljes hozzászólást!
  • és milyen SELECT-et használsz, mert így nálam újra kiírja az összeset újra főcím,alcím, főcím,alcím... sorrendben, nem marad ki a változatlan főcím,


    béna vagyok, továbbolvastam...
    Mutasd a teljes hozzászólást!
  • $aktualis = ""; while ($sor = mysql_fetch_array ($eredmeny)) { if ($sor["focim"] != $aktualis) { print ("<b>Főcim:</b> " . $sor["focim"] . "<br>"); $aktualis = $sor["focim"]; } print("<b>Alcím:</b> " . $sor["alcim"] . "<br><br>"); }

    persze ehhez is szükséges az, hogy focim alapján sorrendezve legyen.

    Tehát:
    SELECT * FROM focim,alcim WHERE focim.id=alcim.focimid ORDER BY focim

    viszont, amit te írtál JOIN nélkül is meg tudom csinálni


    ez ugyanaz mintha joinolnad, igazából egy más szintax.
    A hatása viszont ugyanaz.
    Amit te irtál az ilyen oracle-s körökben elterjedt, mysql szempontból inkább a JOIN ami használatosabb.
    Mutasd a teljes hozzászólást!
  • viszont, amit te írtál JOIN nélkül is meg tudom csinálni:

    SELECT * FROM focim,alcim WHERE focim.id=alcim.focimid

    nekem azonban php-ban kellene ezt megoldani.

    A te php kódod nem műx nálam, bár lehet, hogy elbénázom...

    Jelen pillanatban az alap:
    <?php
    include('dbconn.php');

    mysql_query("SET NAMES 'LATIN2'");
    $parancs = "SELECT * FROM focim,alcim WHERE focim.id=alcim.focimid";
    $eredmeny = mysql_query($parancs);

    while ($sor = mysql_fetch_array ($eredmeny)) {

    print("<b>Főcím:</b> " . $sor["focim"] . "<br>");
    print("<b>Alcím:</b> " . $sor["alcim"] . "<br><br>");

    }

    ?>

    ez nagyjából ok, csak mégsem, mert ugye kiírja a főcímet is mindig, minden alcímhez.
    nekem viszont 1főcím sok alcím, de ezen alcímek a megfelelő főcím alá besorolva szükségesek.

    Egyébként BOLDOG KARÁCSONYT!!! (és én sem értem hogy lett állás egy kérdésből...)
    Mutasd a teljes hozzászólást!
  • Viszont php-s környezetben biztos azt csinálnám, amit te javasoltál

    Ez inkább csak egy játék, hogy ilyet is lehet sql-ben.
    Mutasd a teljes hozzászólást!
  • hmm kicsit favágós módszer, de tetszik!
    Ez eszembe se jutott. Jó gondolkodás nagyon.

    Köszönet érte :)

    Egyébként hasonló megoldásokat én is szoktam alkalmazni, de ez most nem jutott eszembe.

    Nekem csak az volt az agyamban, hogy dimenziót vált, tehát egy sor értéke legyen a lekérdezendő oszlop(ok).

    De egy ilyen esetnél ez tökéletes így.
    Mutasd a teljes hozzászólást!
  • Killer_G: Már miért ne lehetne mysql-ben?


    SELECT focim.focim as cim, 0 AS szint,id as focimid FROM focim union SELECT alcim.alcim as cim, 1 AS szint,focimid FROM alcim order by focimid,szint

    Mutasd a teljes hozzászólást!
  • most ez miért lett állás???

    szerintem ez egyáltalán nem biztos, hogy ő nem tanácsot kért, hogy hogy lehet ezt megoldani...
    Mutasd a teljes hozzászólást!
  • mysql-ben ezt nem oldod meg, hogy lekérdezésben ezt kapd:

    első sor: valami
    második: aaa
    harmadik: ccc

    olyat tudsz kapni, hogy:

    valami | aaa
    valami | ccc
    más | ccc

    Ezt ugye egy szimpla Joinal megtudod tenni.

    SELECT focim, alcim FROM focim
    JOIN alcim ON alcim.focimid = focim.id

    Viszont php-val meg tudod oldani, hogy igy irja ki.

    Az eredményen végigmész php-val egy ciklussal, és csak ott iratod ki a főcimet, ahol változás van.

    Tehát:


    $aktualis = ""; foreach ($lekertadatok as $adat) { if ($adat["focim"] != $aktualis) { print $adat["focim"]; $aktualis = $adat["focim"]; } print $adat["alcim"]; }
    Mutasd a teljes hozzászólást!
  • Hy!

    Adott két tábla a következő szerkezettel:

    focim
    id | focim
    1 | valami
    2| más
    ...

    alcim
    id | alcim | cikk | focimid
    1 |aaa | aaa | 1
    2 |bbb | bbb | 2
    3 |ccc | ccc | 1
    ...

    na szóval, úgykéne kiíratni a cuccot, hogy a focim táblából vegye a főcím mezőt, mellé pedig az alcim táblából a focimid mezőnek megfelelő főcímet.

    Mutatom:
    Valami
    aaa
    ccc

    Más
    bbb

    És így írja ki. Tehát a megegyező főcímet csak egyszer írja és alá az alcímeket a megfelelő helyre. (csak a kiíratás probléma a többi megy, ami eddig kellett hozzá)

    Köszi!
    Mutasd a teljes hozzászólást!
abcd