22786
Html-, css- és php-help
  • MerlinW
    #21625
    Jah, ez van, ha nincs id-val összekapcsolva két tábla...:) Ha olyan lenne, akkor egy join elég lenne.
    Utoljára szerkesztette: MerlinW, 2014.08.10. 16:28:26
  • j0nNyKa
    #21624
    dat lekérdezés :O
  • MerlinW
    #21623
    Szerk:

    Tessék

    (Nem kell bele az in feltétel)


    Utoljára szerkesztette: MerlinW, 2014.08.10. 16:25:16
  • Jim Morrison
    #21621
    http://sqlfiddle.com/#!2/b8d875/3
    Itt van a két tábla, fel van töltve.
    Még egyszer röviden: Olyan lekérdezés kéne, ami a két táblából kiszedi azt az 5 rekordot, ahol a legtöbb a 'hits'.
    Jelenlegi adatok alapján valahogy ez az 5 a top5:
    deagle(4), dust2(3), train(1), nova(1) + még van 1-2rekord ahol a hits 1
  • Jim Morrison
    #21620
    simán hits nem működik, és
    GROUP BY tabla1.hits DESC, tabla2.hits DESC
    esetén is csak az utolsó veszi valamiért figyelembe. Mysql lekérdezésnél megjelenít mindkét táblából rekordokat, de mikor élesben próbálom, akkor csak a tabla2-ből kapok sorokat (ráadásul ismétlődnek, SELECT DISTINCT * se működik mindig jól)

    szerk: de ez már valami, legalább mindegyik oszlopot megjeleníti mindegyik táblából.
    (se left outer joinnál, se inner joinnál, sem sima selecttel nem sikerült működésre bírnom)
    Utoljára szerkesztette: Jim Morrison, 2014.08.10. 12:10:07
  • MerlinW
    #21619
    GROUP BY hits
  • vafeN
    #21618
    A sütis része az úgy működne, hogy egy if-fel le ellenőrizném, hogy a látogató gépén megtalálható vagy nem. Ha igen, akkor a sütiből venném ki az adatokat, ha esetleg nem akkor az adatbázisból és létrehoznám utána a sütit.
    Én valahogy így képzeltem el a működését.

    #21613
    Utána nézek ennek a session tömbnek
  • Jim Morrison
    #21617
    igen ebben duplán benne lesz, ha DISTINCT-et használok, akkor csak az egyik táblából szerzett nem. Igazából azt hittem így se lesz írni egy lekérdezést hozzá, de ha nem lesz megoldás akkor csinálok harmadik táblát a 'hits'-nek, de mint mondtam arra számítottam, hogy így is jó lesz. (két táblában összesen kb 50rekord van, fixen, nem akartam az egészet megdobni még egy táblával)
  • SzirmosSzisza
    #21616
    SELECT * from table, table2;-ben benne lesz minden de duplán sajna. Ennél közelebbi nem jut eszembe. Ellenben nem nagyon értem miért van két táblában is benne a hits, főleg úgy, hogy ahogy nézem ugyanaz mindkettőben.
    Utoljára szerkesztette: SzirmosSzisza, 2014.08.09. 19:34:05
  • Jim Morrison
    #21615
    Lekérdezéssel volna bajom.
    Van két táblám, és van egy oszlop ami mindkettőben szerepel (hits).
    Milyen lekérdezéssel tudom lekérdezni a két táblából 'hits' oszlop szerint csökkenő sorrendben?
    (SELECT * FROM table) UNION (SELECT * FROM table2) ORDER BY hits DESC LIMIT 5
    Ez ugye UNION, szóval csak mindkét táblában szereplő oszlopat adja vissza, ezen felül teljesen jó. De én azt akarom, hogy 1 sor minden egyes oszlopát is adja vissza, ne csak ami szerepel a másikban is.


    Esetleg csináljak ennek a számlálósnak egy harmadik táblát és akkor talán még a lekérdezés is egyszerűbb lesz? Bár mindkét tábla elég kicsi, nem hiszem hogy kéne.
  • SzirmosSzisza
    #21614
    Nem igazán értem mit szeretnél a sütivel.

    SQL szinten, így látatlanban ennyi:
    SELECT * FROM hozzaszolasok WHERE topik_id = 6 AND user_id NOT IN (SELECT tiltott_user_id FROM user WHERE user_id = 12)

    Esetleg a második leágyazott bekérdezés mehetne sütibe, de a SESSION tömb tényleg jobb ötlet lenne.
  • Dodo55
    #21613
    Maga az ötlet jó, de cookie helyett legyen inkább session tömb, megbízhatóbb és kisebb HTTP fejlécet eredményez.
    Utoljára szerkesztette: Dodo55, 2014.08.09. 12:45:23
  • vafeN
    #21612
    Sziasztok, kéne egy kicsit a segítségetek. A weboldalomra szeretnék egy olyat csinálni hogy a felhasználó bebírná állítani, hogy melyik felhasználónak nem szeretné látni a hozzászólását.
    Adatbázisban tárolnám hogy ki kit tiltott le, mellette létrehoznék egy cookiet amiben csak a felhasználóra vonatkozó sorokat raktároznám.
    Én elsősorban azért gondoltam ilyesmire, hogy hátha esetleg így gyorsabb lenne minden procedúra ha először a cookieból próbálom kinyerni az adatokat és ha esetleg az nem elérhető akkor az adatbázisból.

    Ez az egész elgondolás menet szerintetek jó és úgy működne ahogy én azt elképzeltem vagy csak plusz felesleges sorokat írnék a programomba?
    Esetleg valakinek valami tapasztalata ilyennel kapcsolatban?
  • Panzeradler #21611
    huhu köszönöm, remélem most már mindenhol jó lesz így
  • Jim Morrison
    #21610

    body {
    width: 950px;
    background: url(http://kepkezelo.com/images/7whmtkfonktle4rmu8.jpg) no-repeat center top;
    background-attachment: fixed;
    margin-left: auto;
    margin-right: auto;
    }
  • Panzeradler #21609
    Igen sejtettem, hogy ilyen gond is lesz, mindenhol hátrány az 5:4

    Viszont ezzel az autoval teljesen balra zárja, nem pedig a kék sávba mint a képen.
    Azt hittem egyszerűbb lesz megírni egy ilyen oldalt
    Utoljára szerkesztette: Panzeradler, 2014.08.06. 15:13:15
  • SzirmosSzisza
    #21608
    FullHD-n is rosszul néz ki, margin-left és right legyen auto, ezzel szerintem a te monitorodon pont jól néz ki, de minden máson nem :D
  • Panzeradler #21607
    Hali
    Egy kisebb gondom lenne, html-ben elkezdtem egy nagyon egyszerű faq-t csinálni, háttér cssben van beszúrva, viszont ha mobilon nyitom meg az oldalt, akkor a kép lejjebb van csúszva mint a szöveg teteje és így a szöveg rész egy fehér alapon van egy darabig, mi lehet a gond?
    Ez a css rész:

    SPOILER! Kattints ide a szöveg elolvasásához!
    <style type="text/css">
    body {
    background:url(http://kepkezelo.com/images/7whmtkfonktle4rmu8.jpg) no-repeat;
    background-attachment:fixed;
    background-position:center;
    margin-left: 170px;
    margin-right: 170px
    }
    body,td,th {
    color: #FFFFFF;
    border-top-left-radius: 8px;
    font-style: normal;
    }
    </style>

    Utoljára szerkesztette: Panzeradler, 2014.08.06. 14:44:38
  • Jim Morrison
    #21606
    na, fogom az ásd el magad szettet... :D köszi. Hozzádobtam #forum-posts-list -hez és már jó is.
  • SzirmosSzisza
    #21605
    Ugyanúgy a listába (ul) szúrod be ahol most vannak?
  • Jim Morrison
    #21604
    Az mitől lehet, hogy ha klónozok egy itteni hozzászólást, akarom elveszítem a hozzá tartozó style egy részét?

    (klónozom, és hozzáadok egy class-t. ennyi)
  • repvez
    #21603
    köszi
  • passatgt
    #21602
    De csak mert jó kedvem van:

  • passatgt
    #21601
    Színt meg úgy tudsz, hogy a színválaszónak felül van egy beállítása, hogy mekkora pontból vegye a mintát, ott beállítod, hogy 100x100-as részt átlagoljon és úgy nézed meg.
  • passatgt
    #21600
    Photoshoppal rakj rá egy offset filtert (filter-other-offset), függőlegesen és vízszintesen is állítsd be a kép széleeségének a felét. Utána középen látod majd az elvágást, azt kell kijavítanod úgy ahogy szeretnéd, clone tool-al, vagy csak a vágás mellől rákopizol egy másik mintát, hogy ne látszódjon. Ha megvan akkor szépen ismétlődni fog ha egymás mellé rakod.

    Lehet hogy elsőre nem lesz tökéletes, ilyenkor mégegy offsetet nyomsz rá és kitudod javítani ha 1-2 helyen még szar.
  • repvez
    #21599


    Ezt a képet hogy lehetne háttérképként ugy ismételni,hogy ne legyen tul zavaró a csatlakozás? vagy hogy lehet olyan szinmintát kinyerni, hogy ehhez a 3 szinhez passzoljon? A pipettával ahány pixxelre viszem annyi árnyalat mivel nem csak tiszta szin hanem még szövet textura is látszik.
  • Jim Morrison
    #21598
    Ez nagyon szuper, működik is, köszi
  • MerlinW
    #21597
    Az url cincálást én így szoktam csinálni:

    .htaccess:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+)$ index.php [QSA]

    PHP (csak egy példa):

    public $_URL_PARAMS;
    public $_REQUESTID;
    public $_PAGENAME;

    public function __construct() {

    $this->_URL_PARAMS = explode('/', $_SERVER["REQUEST_URI"]);

    $this->_REQUESTID = '';
    //ha numerikus, mert én csak azt szoktam url-ben küldeni. Egyébként mindent POST-olok form-al vagy ajax-al, GET-et sosem használok.
    if (is_numeric($this->_URL_PARAMS[(count($this->_URL_PARAMS)-1)]))
    $this->_REQUESTID = $this->_URL_PARAMS[(count($this->_URL_PARAMS)-1)];

    $this->_PAGENAME = $this->_URL_PARAMS[(count($this->_URL_PARAMS)-2)];

    }

    aztán az $this->_URL_PARAMS tömbben lehet nézegetni éppen merre járunk.

    pl.: http://localhost/project/page/42 esetén a $this->_PAGENAME értéke "page" lesz a $this->_REQUESTID értéke meg 42
    http://valami.hu/project/page/42/ esetén a $this->_PAGENAME értéke "42" lesz a $this->_REQUESTID értéke meg NULL
    ha hosszabb címed van és másra is kíváncsi vagy akkor az $this->_URL_PARAMS tömbben hivatkozhatsz az URL bámelyik részére, kereshetsz benne, stb.



    Ezeket feltételekhez kötve szépen össze tudod rakni a router-edet.

  • MerlinW
    #21596
    A hivatalos PHP.net-es szerintem elég infót ad:)
  • Jim Morrison
    #21595
    Smarty hoz van, ahhoz nem is kell. Valszeg valami php oop könyv lesz, profi nem terveztem hogy leszek, csak egy bizonyos szint elérése számomra a cél.
  • SzirmosSzisza
    #21594
    Smarty tutorial biztos van sok, esetleg valami PHP OO könyv vagy a legegyszerűbb, ha keresel valami keretrendszert (cakephp, codeigniter), azokban általában rengeteg minden benne van alapból + rengeteg tutorial van szintén hozzá. Bár tanulni abból tanulsz, ha magad rugdosod végig ezen az úton :)
  • Jim Morrison
    #21593
    Az a baj, hogy ilyen típusú oldalt még nem csináltam, és megint ott tartok, hogy máshogy kellett volna nekiállni az oldal elkészítésének. Tényleg kb 1-2 napos project lenne + design idő, csak megint szívok kicsit a tudatlanságommal (így is lehet csinálni - meg így is, meg így is... csak amíg nem csináltam hasonlót sosem kellett így felépítenem egy oldalt :)).
    Pl nem 1 darab index.php-t csinálnék, és a htaccessben sem 70 (eredetileg 4-5re gondoltam :D ne is kérdezzétek..^^) darab rewrite rulet, hanem teljesen máshogy boncolgatnám az url-t stb.


    Pl, az ilyen apróságok mint hogy itt is lehet osztályt kiterjeszteni/'child' osztályt megkönnyítik a dolgomat, csak ugye sokszor ezekről nem tudok mert sosem kellett ilyesmit használnom/nem jártam nagyon utána a témának, csak csináltam osztályokat, stb.
    Esetleg ha valaki ilyen összegyűjtött 'praktikákról' tudna valami írást linkelni 'PHP: hogyan könnyítsük meg a dolgunkat' vagy mittomén' milyen című írásokat linkelni, annak nagyon hálás lennék :)
  • Jim Morrison
    #21592
    Ezt gyorsan meg is csinálom, köszi
  • MerlinW
    #21591
    Csinálsz egy főosztályt pl:

    class main {

    public $db;

    public function __construct() {
    $this->db_connect();
    }

    protected function db_connect() {
    $db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
    }


    Majd az összes többi osztályodat így, azaz kiterjeszted:

    class név extends main { }

    A main osztályt létrehozod az indexedben, |gy a többi osztályod mindent látni fog ami a main osztályban található. Esetünkben a $this->db -t.
  • Jim Morrison
    #21589
    Természetes nem használok ékezeteket, tábla nevek sem nagybetűsek, csak lekérdezésben írtam nagybetűvel ezért volt rossz :(
    Arra nincs valami praktika, hogy ha sok lekérdezésem van, hogy építsek fel egy 'queries' osztályt? Gondolok itt arra, hogy a fájl elején van egy require ('connect.php');és abban van egy ilyen sor:
    $db = new PDO("mysql:host=$db_host;dbname=$db_name", $db_user, $db_pass);
    Na mármost nekem minden függvényem jelenleg úgy kezdődik, hogy
    global $db;
    és nem valami szép - tovább megyek, mindegyik ilyesmi, csak más lekérdezéssel.

    public function GetMap($param) {
    global $db;
    $query = $db-&gt;prepare("SELECT * FROM tabla WHERE (name = :name) OR (proper_name = :name2) LIMIT 1");
    $query-&gt;bindValue(':name', $param);
    $query-&gt;bindValue(':name2', "de_".$param);
    $query-&gt;execute();
    return $row = $query-&gt;fetchAll(PDO::FETCH_ASSOC);
    }

    Jobb lenne, ha függvényben csak az sql lekérdezés lenne, majd azt átadom egy lekérdezés "végrehajtó" függvénynek, (bindvalue-hoz tartozó elemekkel együtt egy array-ben), majd abban szépen végrehajtom a lekérdezést?
  • MerlinW
    #21588
    Öreg hiba:) Nagybetűt csak és kizárólag osztály/függvénynevekben használunk (változónevekben sem, csak konstansoknál), SQL-ben soha.

    Továbbá ugye ékezetet sem használunk sehol. Meg ugye van a többi, miszerint aláhúzással kezdjük a privát cuccokat, a függvényneveket do_, get_, add_, del_, is_, stb-vel kezdjük, majd nagybetűs kezdőbetűvel folytatjuk a nevet, a paramétereket p_-vel kezdjük, stb. (pl. get_Users($p_id))

    Ezek mind segítenek abban, hogy ránézésre tudjuk mi mit csinál, merre kell keresni a hibát.
  • Jim Morrison
    #21587
    sikerült elkapnom és meg is volt a hiba... köszi (az volt a baj, hogy a táblanév lekérésben nagybetűvel kezdődött, ami localhoston működött, itt nem....)
  • SzirmosSzisza
    #21586
    Valahova biztos logol, de ha elkapod a kivételt meg tudod nézni rendesen.
  • Jim Morrison
    #21585
    jaa tényleg mintha php ban is lenne ilyen :D de mondom ennél a PDO execute nál döglik meg a cucc.
  • SzirmosSzisza
    #21584
    Nem nagyon vágom, hogy működik ez a Smarty, de ha jobb ötlet nincs, akkor rakd be try-catch közé és kapj el egy sima Exception-t, aztán írasd ki annak a dolgait.