22786
Html-, css- és php-help
-
#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 -
#21624 dat lekérdezés :O -
#21623 Szerk:
Tessék
(Nem kell bele az in feltétel)
Utoljára szerkesztette: MerlinW, 2014.08.10. 16:25:16 -
#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
-
#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 -
#21619 GROUP BY hits -
#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 -
#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) -
#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 -
#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. -
#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 -
#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? -
#21611 huhu köszönöm, remélem most már mindenhol jó lesz így -
#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;
}
-
#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 -
#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 -
#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 -
#21606 na, fogom az ásd el magad szettet... :D köszi. Hozzádobtam #forum-posts-list -hez és már jó is. -
#21605 Ugyanúgy a listába (ul) szúrod be ahol most vannak? -
#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) -
#21603 köszi -
#21602 De csak mert jó kedvem van:
-
#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. -
#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. -
#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. -
#21598 Ez nagyon szuper, működik is, köszi -
#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.
-
#21596 A hivatalos PHP.net-es szerintem elég infót ad:) -
#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. -
#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 :) -
#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 :) -
#21592 Ezt gyorsan meg is csinálom, köszi -
#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. -
#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->prepare("SELECT * FROM tabla WHERE (name = :name) OR (proper_name = :name2) LIMIT 1");
$query->bindValue(':name', $param);
$query->bindValue(':name2', "de_".$param);
$query->execute();
return $row = $query->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? -
#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. -
#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....) -
#21586 Valahova biztos logol, de ha elkapod a kivételt meg tudod nézni rendesen. -
#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. -
#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.