22786
Html-, css- és php-help
-
#18942 jQuery.js-t nem kell includeolni, az van SG-n alapból, a countdown.js (valami ilyesmi neve van gondolom) kéne. -
#18941 // ki lehetne tenni a code makrót a gyors elérés érdekében -
#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);
-
#18939 thx. google-ban lehet letölteni smaple-t? -
#18938 jQuery countdown :) -
#18937 valaki tudna egy jó kis countdown scriptet?
mert nekem kéne egy amit egyik topikba linkelnék be... -
#18936 Köszi :) -
#18935 - Általában van egy container elem, azon lehet appendelni.
- Utolsó elem alapján: .after() / .insertAfter() -
#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? -
#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. -
#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. -
#18931 Ez nagyon zsir tanacsok, koszonom.
A masodik kerdesre biztos tudod valaszt segitenel legy szives? -
#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. -
#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? -
#18928 Rakj mögé és lesz :) -
#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. -
#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. -
#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 -
#18924 Kiprobaltam ezt is es ez is frissiti az osszes radio statuszat:
where '.time().'-lastrun < 86400
Lehet a mysql tablaban levo formatum nem jo? -
#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? -
#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 ? -
#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 -
#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. -
#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. -
#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] -
#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. -
#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 -
#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. -
#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? -
#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. -
#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. -
#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. -
#18910 így jó, ahogy leírtad -
#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]'"); -
#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 -
#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? -
#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. -
#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. -
#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. -
#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.