22786
Html-, css- és php-help
  • SzirmosSzisza
    #18942
    jQuery.js-t nem kell includeolni, az van SG-n alapból, a countdown.js (valami ilyesmi neve van gondolom) kéne.
  • Jim Morrison
    #18941
    // ki lehetne tenni a code makrót a gyors elérés érdekében
  • DarkSector
    #18940
    leszedtem a hun fájlt, feltettem webhelyre, itt sg-n betettem a behivó sort, és semmi....D

    utvonalat megadtam ahová feltettem a js fájlt...mi lehet a baj?

    behívás:
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>

    js tartalma:

    /* http://keith-wood.name/countdown.html
    * Hungarian initialisation for the jQuery countdown extension
    * Written by Edmond L. ([email protected]). */
    (function($) {
    $.countdown.regional['hu'] = {
    labels: ['Év', 'Hónap', 'Hét', 'Nap', 'Óra', 'Perc', 'Másodperc'],
    labels1: ['Év', 'Hónap', 'Hét', 'Nap', 'Óra', 'Perc', 'Másodperc'],
    compactLabels: ['É', 'H', 'Hé', 'N'],
    whichLabels: null,
    timeSeparator: ':', isRTL: false};
    $.countdown.setDefaults($.countdown.regional['hu']);
    })(jQuery);
  • DarkSector
    #18939
    thx. google-ban lehet letölteni smaple-t?
  • SzirmosSzisza
    #18938
    jQuery countdown :)
  • DarkSector
    #18937
    valaki tudna egy jó kis countdown scriptet?
    mert nekem kéne egy amit egyik topikba linkelnék be...
  • Lazarus
    #18936
    Köszi :)
  • Malakai
    #18935
    - Általában van egy container elem, azon lehet appendelni.
    - Utolsó elem alapján: .after() / .insertAfter()
  • Lazarus
    #18934
    szerkezetileg szerintetek hogy célszerű úgy bővülő tartalmat megjeleníteni mint facebookon, hogy letekered az egeret aztán ha az aljára érsz új tartalmat tölt be. Nem akarok túl sok div-et egymásba ágyazni. A meglévő tartalmat meg gondolom hülyeség lenne újra és újra felülírni. Van olyan javascript/jQuery funkció amivel egy adott div után (és nem bele) tudok tartalmat beszúrni a dokumentumba?
  • Agy Halott #18933
    Ezt nem hiszem el. Megint igazad volt, koszonom.

    Egyebkent ez a @ jel amit irtal, nagyon tetszik.
    Mivel soha nem szerepel @ a stringben, viszont millio /, egybol ket legyet csapok:
    1, helytakarekossag
    2, idotakarekossag

    Plusz azt sem tudtam, hogy egy szam eseten nem kell a {} kozotti ertek megadasa.
  • Malakai
    #18932
    Annak úgy működnie kell, hogyha a $php_valtozo-val összeilleszve a string egy hiba nélküli regex.
    Ha egy üres array-t kapsz vissza, akkor szimplán nincs találat. Ha kiveszed a $cucc-ot, akkor a függvénynek 1-et kell visszadnia, ha van egy találat, vagy 0-át, ha nincs.
  • Agy Halott #18931
    Ez nagyon zsir tanacsok, koszonom.

    A masodik kerdesre biztos tudod valaszt segitenel legy szives?
  • Malakai
    #18930
    Eleve érdemesebb ha lehet minél inkább szűkebbre venni a regex lehetőségeit, tehát a "bármilyen karakter akárhányszort" kerülni, mégha lazy multiplier, akkor is (itt még az se volt).

    A másik, hogy viszont a verziód jó lenne, csak éppen még rá kell érezz a helyes regex syntaxra. :)
    A piros rész helyesen: ([0-9]{1,9}\.[0-9])
    Amit [] közé teszel ott a megadott karakterekből próbál válogatni, néhány X-től Y-ig shorthand módszerrel, ilyen a 0-9, vagy az A-Z, stb. A {}-ben lévő számok egy x és y közti meghatározott multiplier, tehát a számokat akarod többször. Ha csak egyet akarsz felesleges a {1}, mivel ha nem adsz semilyen multipliert, akkor egyszer matcheli csak a []-ben lévő valamely karaktert.

    És ha tényleg pontot akarsz, akkor azt máshol se felejtsd el escapelni.

    És egy plussz tipp, ha több / jelre számítasz, mint @, akkor akkor a kezdő és végső / jelet cseréld @-re, ugyanúgy működik.
  • Agy Halott #18929
    LOL ugy konnyu de sajnos nem en hatarozom meg a stringet, egyebkent rajottem:

    preg_match('/<strong>Oldal: <\/strong><a href=".\/oldal.php">([0-9{1,9}.[0-9]{1}])/', $out, $szam);



    Masik kerdes, mar kicsit nehezebb:

    preg_match('/<div><span>cucc: <\/span><a href=".\/cucc.php">'.$php_valtozo.'</a><\/div>/', $out, $cucc);


    Miert nem mukodik ez az osszeallitas? Szoval php valtozot teszek a preg_match-ba am a $cucc erteke ures lesz.
    Olvastam a php.net-en, hogy igy kell kulso valtozot betenni, de megsem mukodik. Miert?
  • Lazarus
    #18928
    Rakj mögé és lesz :)
  • Agy Halott #18927
    Hogyan kaphatom meg az alabbi stringbol a zold szinnel jelzett reszt?

    STRING:
    <strong>Oldal: </strong><a href="./oldal.php">135.7


    IGY PROBALKOZOM:
    preg_match('/<strong>Oldal: <\/strong><a href=".\/oldal.php">(.*?)/', $out, $szam);


    EZT EREDMENYEZI:
    array(1) {
    [0]=>
    array(2) {
    [0]=>
    string(51) "<strong>Oldal: </strong><a href="./oldal.php">"
    [1]=>
    string(0) ""
    }
    }


    Az a baj, hogy a 135.7 resz utan nincs tobb fix karakter ami meg segitene megtalalni ezt.
  • Agy Halott #18926
    Megvan mar mukodik.

    Am amiota kivettem a lastrun='$rut' a $upd = mysql_query("UPDATE stations SET status='$ety' WHERE id='$row[id]'") or die(mysql_error()); reszbol, nem frissiti a datumot ha a radio statusza nem valtozott az utolso frissites ota.

    Szoval tegyuk fel, hogy van egy 200-as statuszu, tegnapi datumu radio, ha az ellenorzeskor szinten ugyanaz a radio stausza mint tegnap, akkor ugyebar nem frissiti a datumot, mivel a statusz ugyanaz. Szoval szeintem kell bele a lastrun='$rut':

    $upd = mysql_query("UPDATE stations SET status='$ety', lastrun='$rut' WHERE id='$row[id]'") or die(mysql_error());

    Vagy ra kellne venni a kodot, hogy mindenkeppen irja bele a kapott statusz kodjat, igy mivel ir a kod az adatbazisba ezert annak datuma is frissulne.
  • Lyukasbogrács
    #18925
    írasd ki a lekérdezés eredményeit és ellenőrizd, hogy hol nem működik úgy, ahogy kell, mint ahogy Cat írta.
    vagy fordítsd meg a relációt a lastrun előtt, mindig összekeverem :D
  • Agy Halott #18924
    Kiprobaltam ezt is es ez is frissiti az osszes radio statuszat:

    where '.time().'-lastrun < 86400

    Lehet a mysql tablaban levo formatum nem jo?
  • Agy Halott #18923
    Amúgy neked nem fordítva kéne ? Vagy azokat akarod frissíteni, ami 1 napnál fiatalabb ?

    [URL=http://www.sg.hu/listazas_msg.php3?id=1043617395&no=18915]#18915[/URL]


    //persze ha a lastrun time()-os timestamp :)

    MySql Tabla


    Otlet?
  • SzirmosSzisza
    #18922
    Úha, majd Bogrács válaszol, én ezt a függvényt nem vágtam, én így csinálnám

    where '.time().'-lastrun < 86400
    //persze ha a lastrun time()-os timestamp :)

    Amúgy neked nem fordítva kéne ? Vagy azokat akarod frissíteni, ami 1 napnál fiatalabb ?
  • Agy Halott #18921
    Mar nincs is if a kodban:

    <?php
    MYSQL():

    $res = mysql_query('SELECT * FROM stations WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun') or die(mysql_error());

    while($row = mysql_fetch_array($res)){
    CURL();
    $upd = mysql_query("UPDATE stations SET status = $ety WHERE id= $row[id]") or die(mysql_error());
    }
    ?>


    Meg mindig rossz a lekrdezes, szerintem ez nem teljesul:
    WHERE DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun
  • SzirmosSzisza
    #18920
    Rakd tele echo-kkal, nézd meg minek hol mi az értéke, abból amit leírtál az IF-eddel vannak bajok.
  • Agy Halott #18919
    $upd = mysql_query("UPDATE stations SET status = $ety WHERE id= $row[id]") or die(mysql_error());

    Jelenleg igy van es ugy nez ki (meg mindig fut a kod), hogy atirja az adatbazist, viszont meg mindig az osszest, szoval nem csak az egy napnal regebbieket irja felul.
  • Lyukasbogrács
    #18918
    $upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row[id]'") or die(mysql_error());
    ha nem ír ki hibát, akkor írasd ki az sql mondatot és futtasd le a phpmyadminban. vagy lehet a WHERE id = '$row[id]' nem tetszik neki, aposztrófok nélkül kéne? WHERE id = $row[id]
  • Agy Halott #18917
    $upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row[id]'");

    Ez igy am meg nem jo, mivel mint irtam, nem irja az adatbazisba az uj adatokat, mivel kiszedtem a lastrun = '$rut' reszt.
  • Lyukasbogrács
    #18916
    tulajdonképpen akkor a $_POST[id]-ra nincs is szükség, mert az akkor kéne, ha egy meghatározott állomást akarnál frissíteni, de neked az összeset kell, ami 1 napnál régebbi. http://pastebin.com/WX4ewxEx
  • Agy Halott #18915
    MYSQL tabla

    minden sor egy rádióállomásnak felel meg, a statusban az van, hogy elérhető e az oldal/rádióállomás (http státuszkód), a lastrun meg hogy mikor volt utoljára ellenőrizve. ez így ok?

    PONTOSAN!

    és úgy kell működnie, hogy ha valaki kiválaszt egy rádióállomást, akkor ha 1 hétnél régebbi, akkor ellenőrizze, hogy elérhető és frissítse a sort. ez így ok?


    Nem egeszen, mivel ez az admin feleulten van es csak en futtatom es en kuldom a $_POST[id]-t a kodnak ajaxal de ez most mindegy.

    1 napnal vagy regebbi radiok statuszat kellne frissitenie a kodnak. Szoval ahogy te is irtad a mysql-nek csak ennek az idointervallumnak megfelelo radiokat kellene futtatnia a while() ciklusban, nem az osszest.
  • Lyukasbogrács
    #18914
    tisztázzunk valamit, stations tábla: id, status, lastrun
    minden sor egy rádióállomásnak felel meg, a statusban az van, hogy elérhető e az oldal/rádióállomás (http státuszkód), a lastrun meg hogy mikor volt utoljára ellenőrizve. ez így ok?
    és úgy kell működnie, hogy ha valaki kiválaszt egy rádióállomást, akkor ha 1 hétnél régebbi, akkor ellenőrizze, hogy elérhető és frissítse a sort. ez így ok?
  • Agy Halott #18913
    Nahhh vmi nem jo, mert a kod futasakor ugyanugy frissiti az osszes radio stauszat es raadasul nem irja felul a regi mysql adatokat.

    Szoval lehet, hogy kellne az a datetime? Bar a lekerdezes is rossz, mivel az osszes radion vegigfut.
  • Lyukasbogrács
    #18912
    ezt csak azért írtam, mert timestamppal nem sűrűn foglalkoztam és nem tudom, hogy hogy viselkedik a mysql-es dátumkezelő függvényekben, de valószínűleg ugyanúgy, mint a datetime típus.
  • Agy Halott #18911
    Ha pedig teheted a station táblában a dátumok mezőinek elég ha DATETIME típust adsz meg...


    Erre ertettem, hogy akkor megsem kell atirni a tablaban levo lastrun tipusat, mivel jelenleg nem DATETIME hanem TIMESTAMP.
  • Lyukasbogrács
    #18910
    így jó, ahogy leírtad
  • Agy Halott #18909
    Jelenleg a mysql igy van:

    `lastrun` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

    Ezt modositanom kell a timestamp tipust, ha az update reszt atirom?

    $upd = mysql_query("UPDATE stations SET status = '$ety' WHERE id= '$row[id]'");
  • Lyukasbogrács
    #18908
    nem fontos, mivel a DATETIME és a TIMESTAMP típus szinte teljesen azonos, az a lényeg, hogy ha a struktúránál beállítod, hogy auto frissítse az aktuális időre, akkor UPDATE-nél nem kell a lastrunt módosítani, megteszi helyetted a mysql
    UPDATE stations SET status = '$ety' WHERE id= '$row[id]
    ezt csak úgy megemlítettem
  • Agy Halott #18907
    <?php
    MYSQL();

    $rut = date("Y.n.j. H:i:s", time());
    $ger = mysql_query("SELECT MAX(id) FROM stations") or die(mysql_error());
    $max = mysql_result($ger, 0, 0);
    $postid = (int)$_POST[id];

    if(isset($postid)){
    $res = mysql_query("SELECT * FROM stations WHERE id = $postid AND DATE_SUB(NOW(), INTERVAL 1 DAY) < lastrun") or die(mysql_error());

    while($row = mysql_fetch_array($res)){

    CURL();

    if(curl_errno($cir)){
    $ety = curl_errno($cir);
    }

    else{
    $ety = curl_getinfo($cir, CURLINFO_HTTP_CODE);
    }
    $upd = mysql_query("UPDATE stations SET status = '$ety', lastrun = '$rut' WHERE id= '$row[id]'");
    curl_close($cir);
    }
    }
    ?>


    Igy gondoltad? Bar most akkor az sql tablat is szerkesztenem kell?
  • Agy Halott #18906
    Persze, hogy a date("j") az aznapi datumot adja mikor a kod futtatva van. Ez a lenyege:

    if(date("j") != $lac && date("j") >= $ner){}

    Ha mai nap (1) nem egyenlo az utolso frissites datumaval (26) ES a mai nap (1) nagyobb vagy egyenlo a kov. frissites datumaval (2) akkor a kod lefut.

    Tehat ha holnap (2) futtatom a kodot, akkor az if ag mindket resze igaz, mivel van olyan radio aminek az utolso frissites datuma (26) nem az aznapi nap (2) ES az aznapi nap (2) nagyobb vagy egyenlo a kov. frissites datumaval (2).

    Igazam van? Mar csak az mysql-t kellene ugy lekerdezni, hogy ne az osszes radiot frissitse, hanem csak azokat, amik megfelelnek az if ag kovetelmenyeinek.
  • Lyukasbogrács
    #18905
    Szerintem egyszerűbb lenne úgy ha már a mysql lekérdezésben kiválasztanád azokat, amik egy hétnél régebbiek
    SELECT * FROM stations WHERE id = $_POST[id] AND DATE_SUB(NOW(), INTERVAL 1 WEEK) < lastrun
    utána nem kell a while ciklusban semmi feltétel, mert csak azok fognak szerepelni, amik 1 hétnél régebben voltak frissítve. while ciklusban meg végigzongorázod a frissítéseket.
    Ha pedig teheted a station táblában a dátumok mezőinek elég ha DATETIME típust adsz meg, attribútumként pedig beállítod, hogy "on update CURRENT_TIMESTAMP" (phpmyadminban valahogy így van), így ha frissíted a sort, akkor automatikusan a jelenlegi időre fogja módosítani. Ez csak akkor hasznos, ha kizárólag frissítési céllal módosítod/módosítanád a sort (értem ezalatt, hogy a curl-lel visszaadott adatokat írod vissza). Jól jön akkor ha, nem akarsz a dátumfrissítésekkel szenvedni.

    és egy protip: biztonsági szempontból a $_POST[id] bármi lehet, jó ha előbb átalakítod számmá, mert gondolom csak szám lehet az id.
    $id = (int) $_POST['id'];
    ha valaki szöveget ír be, akkor 0 lesz az értéke.
  • SzirmosSzisza
    #18904
    date("j") nekem sanszos, hogy a jelenlegi dátumot adja vissza, ha visszaad valamit, neked nem az 1 héttel ezelőtti kell ? Neked valami date("j",row['lastrun']) féleség kéne szerintem.

    Illetve lehet úgy egyszerűbb, hogy ha úgyis linux timestamp, akkor nem datezel, hanem megnézed, hogy a time()-"a te időd" > 604800 és kész.
  • Agy Halott #18903
    Volna meg egy mysql lekerdezes problemam:

    http://pastebin.com/19dDkdpg

    A lenyeg az lenne, hogy ugy kellne lekerdezni a mysql-t, hogy ha a $_POST[id] nem ures, akkor annak megfelelo ID-ju radiot valassza ki es ha futtataskor
    if(date("j") != $lac && date("j") >= $ner){}
    teljesul akkor tortenjen meg ez:
    $upd = mysql_query("UPDATE stations SET status = '$ety', lastrun = '$rut' WHERE id= '$row[id]'");

    Jelenlegi lekerdezesem ez:
    $res = mysql_query("SELECT UNIX_TIMESTAMP(lastrun) as lat, stations.* FROM stations WHERE id = '$_POST[id]'") or die(mysql_error());

    Am nem mukodik, nem teljesul az if ag, pedig van olyan radio az adatbazisban aminek az utolso frissitese 1 hettel ezelott tortent.

    Ha kiveszem a lekerdezesbol ezt:
    UNIX_TIMESTAMP(lastrun) as lat, stations.
    akkor termeszetesen minden radiot frissit attol fuggetlenul, hogy mar tortent frissites.

    Van otlet? Koszonom.