naponta uj mysql_query
udv,
olyan scriptet szeretnek irni, amely naponta mas sort olvas ki egy mysql tablabol. a tablaban amiben meghatarozatlan szamu sor van, es valtozik. ugy is fogalmazhatnek, h "napi random", avagy "daily news".
igy inditottam, de ez csak 31 'content'-tel mukodik, nekem tobb kell:otletem sincs h hogyan induljak el.. kis :help: legyszes
kossze..
■ olyan scriptet szeretnek irni, amely naponta mas sort olvas ki egy mysql tablabol. a tablaban amiben meghatarozatlan szamu sor van, es valtozik. ugy is fogalmazhatnek, h "napi random", avagy "daily news".
igy inditottam, de ez csak 31 'content'-tel mukodik, nekem tobb kell:
<?php
include("config.php");
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname);
$actdate="2000-01-".date('d');
$result = mysql_query("SELECT content FROM dailynews WHERE ins_date = '$actdate'");
$row = mysql_fetch_assoc($result);
echo $row[content];
?>
kossze..
Date?
Mi lenne, ha mondjuk megfelelően paramétereznéd a date függvényt? Vagy elolvasnád a doksiját a változatosság kedvéért?
Egyáltalán érted amit leírtál vagy csak ész nélkül másoltál? Ha nem érted, akkor elmondom mit csinál: létrehoz egy adatbázis kapcsolatot majd a "2000-01-" szöveget összefűzi a nap értékkel. Neked mindössze annyit kellene tenni, hogy a beégetett dátum helyett megfelelően fölparaméterezed a date függvényt. Ezt pedig a már emlegetett doksi alapján teheted meg.
J
plusz...
order by random helyett order by daily kellene
felreertettel.. nem a 'date'-t keresem
nincs igazad.. todom mit csinaltam. azt, h a mysql tablaban talalhato 2001-01-01,2001-01-02,..,2001-01-31 datummal jelzett sorokat hivom az aktualis honaptol fuggetlenul. ehhez csak anyi a dolgom, h havi egyszer feltoltom az adatbazist uj adatokkal.
ez eddig rendben is van, csakhogy nincs kedvem figyelni h mikor toltottem es mikor nem adatbazist, ezert kulonbozo idokozonkent, kulonbozo mennyiseget akarok tolteni, tehat nem 31 sorom lesz a tablaban hanem tobb, vagy kevesebb. ez valtozo.
tehat mas logika szerint kell szedegessem a sorokat a tablabol, a lenyeg h mindennap ujat, tehat a kovetkezot. ehez pedig semmi koze a datumnak. csak en azt valasztottam, merthogy 2 legyet egy csapasra akartam megoldani problemakat..
remelem most ertheto.. es ha valami nem elobb kerdezz vissza kerlek.
szerintem
Amikor használni akarod az adott naphoz tartozó adatot akkor a második táblából lekéred. Ha nem találsz (, mert az az aznapi első lekérés) akkor lekérsz egy sort az első táblából és beírod a második táblába a megfelelő dátummal együtt.
Az hogy az első táblából véletlenszerűen kéred le a sorokat vagy valamilyen szabály szerint, az már részletkérdés.
kiválasztás dátuma
naponta uj mysql query majdnem kesz
ime a vegkifejlett:
de meg van egy kis gond vele, a //the beginning-kent jelolt reszben, a tabla elso sora hasznalhatatlanna valik.
termeszetesen ez manualisan eszkozolheto, de ha mar csinalok valamit, szeretem ha szep. kivul-belul.
nem értem
Kiválasztasz egy rekordot, majd ha ennek a rekordnak a show_date mezeje üres, akkor update-elsz egy rekordot. Mivel nincs where feltétel egyikben sem, így megjósolhatatan mi is történik. Nem törvényszerű, hogy ugyanazt updateled mint amelyiket lekérdezted...
Meg kicsit felesleges ennyi select, pont kétszer annyi mint kéne :)
1. Kiválasztasz egy rekordot valamilyen szempont szerint, akár így:
Az elv
2) Lekérdezed a táblában lévő legnagyobb ID-t.
3) Generálsz egy véletlen számot PHP-ben 1 és (a lekérdezett) maximum között
4) kiveszed a rekordot ezzel az ID-vel a táblából
Ha nem lenne ilyen rekord (törölték, valami), akkor újra generálsz randomot (monduk egy while ciklusba teszed a 3. és 4. lépést).
A seed miatt a PHP minden futáskor ugyanazt a véletlen sorozatot fogja generálni, de csak holnapig, amikor új seddel fogsz dolgozni. Szerintem ne csak a dátum utolsó tagját használd (nap), mert így változatlan adatbázis esetén minden hónap valahanyadikán ugyanaz a dolog fog feljönni.