Aktív témák
-
Deemer
csendes tag
Sikerült megoldanom a hibát .. pár +feltérellel kiegészítettem, és most már jó
-
Deemer
csendes tag
Sziasztok!
Egyik ismerősöm ajánlotta ezt az oldalt, és hát eddig csak pozitív dolgokat hallottam róla, így gondoltam megpróbálom én is :)
Nos akkor ... Olyat szeretnék csinálni a fórumomba, hogy ha a user volt a topicban, és ha érkezik új hozzászólás, akkor jelezze neki, hogy van a fórumon, és azon belül a megfelelő topicon belül új hsz az utolsó ottléte óta ...
Eddig a képek megvannak hozzá, meg meg is próbáltam írni magamtól, csak azaz igazság, hogy nem akar menni rendesen nekem , mert van amikor jelez a fórumnál, hogy új hsz van a fórumon belül, de egy topic se jelez, hogy azon belül lenne ...
Van nekem ilyenem, hogy:
SQL Tábla
CREATE TABLE `forum_visited` (
`username` VARCHAR(255) NOT NULL,
`forum` INT(11) NOT NULL,
`topic` INT(11) NOT NULL,
`replies` INT(11) NOT NULL,
`big_new` INT(11) NOT NULL DEFAULT '0',
`uid` INT(11) NOT NULL NULL,
`time` INT(11) NOT NULL NULL
) TYPE=InnoDB;
usernameba megy a felhasználó, fórumba a fórum idje, topicba a topic idje, repliesbe megy a megtekintés idején a topic kezdőhszére a válaszok száma( ezzel ellenőrzöm, hogy kell e jelölni, hogy új hsz, vagy sem ... ) a big_new az jelzi, hogy kint a fórumok listájánál jelezzen e, hogy van új hsz, vagy sem, uid a felhasználó id-je, és a time, pedig ha postolt, akkor annak az ideje, hogy mikor küldte el.
Ha belép a topicba, akkor beteszem a visited táblába az adatait, így ha lesz új hsz, akkor már neki fog jelezni .. legalábbis kéne neki :P
PHP Kód
if( isset( $_SESSION['user_logged_in'] )) {
$sql_uid = ''SELECT `id` FROM `users` WHERE `username`=''' . $_SESSION['username'] . ''''';
$query_uid = mysql_query( $sql_uid );
$fetch_uid = mysql_fetch_assoc( $query_uid );
$sql_visited = ''SELECT `big_new` FROM `forum_visited` WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`='$req' and `topic`='$id' and `uid`='' . $fetch_uid['id'];
$query_visited = mysql_query( $sql_visited );
if(( mysql_num_rows( $query_visited ) == 1 )) {
$fetch_visited = mysql_fetch_assoc( $query_visited );
$sql_visited = ''UPDATE `forum_visited` SET `replies`='$visited_replies', `big_new`='0', `time`=''' . time() . ''' WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`='$req' and `topic`='$id' and `uid`=''' . $fetch_uid['id'] . ''''';
mysql_query( $sql_visited );
}
else {
$sql_visited = ''REPLACE INTO `forum_visited`( `username`, `forum`, `topic`, `replies`, `big_new`, `uid`, `time` ) VALUES( ''' . $_SESSION['username'] . ''', '$req', '$id', '$visited_replies', 0, '' . $fetch_uid['id'] . '', ''' . time() . ''' )'';
mysql_query( $sql_visited );
}
};
Csak akkor csinálja, ha a user be van lépve ... lekérem a user idjét, összeteszem a visited táblából al ekérést, ha sikeres a lekérés, akkor updatelem a legfrisebb adatokkal és átteszem 0ra a big_newt, hogy ne jelezzen többet ebben a topicban és a fórum emiatt a topic miatt. Egyéb esetben valszeg most jön elsőnek a topicba, így beteszem a jelenlegi adatokat, big_new 0-val, így nem fog jelezni, csak ha később lesz benne új hsz.
Ha új témát nyit, vagy hozzászól, akkor beteszem a visited táblába big_new 1-el:
PHP Kód:
$sql_visited = ''SELECT `forum` FROM `forum_visited` WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`='$req' and `topic`='$id' and `uid`='' . $fetch_uid['id'];
$query_visited = mysql_query( $sql_visited );
if( mysql_num_rows( $query_visited ) != 0 ) {
$sql_visited = ''UPDATE `forum_visited` SET `replies`='$visited_replies', `big_new`='1', `time`=''' . time() . ''' WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`='$req' and `topic`='$id' and `uid`=''' . $fetch_uid['id'] . ''''';
mysql_query( $sql_visited );
}
else {
$sql_visited = ''REPLACE INTO `forum_visited`( `username`, `forum`, `topic`, `replies`, `big_new`, `uid`, `time` ) VALUES( ''' . $_SESSION['username'] . ''', '$req', '$id', '$visited_replies', 1, '' . $fetch_uid['id'] . '', ''' . time() . ''' )'';
mysql_query( $sql_visited );
}
Lényegét tekintve ua a kód, mint az előző, csak itt 1 lesz a big_new, hogy jelezzen a többieknek ...
Akkor asszem jöhet is a topicok listázása:
PHP Kód:
if( isset( $_SESSION['user_logged_in'] )) {
$sql_visited = ''SELECT `replies`, `time` FROM `forum_visited` WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`='$id' and `topic`=''' . $cont['id'] . ''' and `uid`='' . $fetch_uid['id'];
$query_visited = mysql_query( $sql_visited );
if( mysql_num_rows( $query_visited ) == 1 ) {
$fetch_visited = mysql_fetch_assoc( $query_visited );
if( $fetch_visited['replies'] < $cont['replies'] ) {
$exp = explode( ''.'', $img );
$img = $exp[0] . ''_new.'' . $exp[1];
};
};
};
Lefut, ha user be van lépve. megnézem, hogy volt e már a user a topicban, ha volt, akkor lekérem a látogatása idejében a válaszok számát, ha ez kisebb, mint a jelenlegi, akkor jelölöm neki, hogy van új hsz.
És a fórumoknál is a jelölés:
PHP Kód:
if( isset( $_SESSION['user_logged_in'] )) {
$sql_uid = ''SELECT `id` FROM `users` WHERE `username`=''' . $_SESSION['username'] . ''''';
$query_uid = mysql_query( $sql_uid );
$fetch_uid = mysql_fetch_assoc( $query_uid );
$sql_visited = ''SELECT `big_new` FROM `forum_visited` WHERE `username`=''' . $_SESSION['username'] . ''' and `forum`=''' . $cont['id'] . ''' and `uid`='' . $fetch_uid['id'];
$query_visited = mysql_query( $sql_visited );
if( mysql_num_rows( $query_visited ) != 0 ) {
$fetch_visited = mysql_fetch_assoc( $query_visited );
if( $fetch_visited['big_new'] == 1 ) {
$exp = explode( ''.'', $img );
$img = $exp[0] . ''_new.'' . $exp[1];
};
};
};
Lefut, ha a user be van lépve. lekérem a user idjét. összeteszem a lekérést. ha a visszaadott sorok száma nem 0, akkor lekérem az adatokat, és ha a big_new az 1, akkor jelölöm, hogy új hsz van a témán belül.
Srry, hogy ilyen hosszú lett, csak szerepeltetni szerettem volna mindent. Remélem tudtok segíteni. lehet logikai felépítésében vna a gond, vagy nem tudom, de már itt töröm magam rajta egy hete, és nem akar sikerülni Ezért gondoltam, hogy hátha tudtok segíteni
Előre is köszönöm a segítségeteket! Laterz!
[Szerkesztve]
Aktív témák
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- pusszycat: JEYI - okos, színes, interaktív, ssd külső ház.
- sziku69: Fűzzük össze a szavakat :)
- Androidos tablet topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Milyen egeret válasszak?
- Samsung Galaxy A54 - türelemjáték
- Filmvilág
- Apple iPhone 15 - a bevált módszer
- További aktív témák...
- BESZÁMÍTÁS! ASUS H510M i7 10700K 16GB DDR4 512GB SSD RTX 3070 8GB ZALMAN S2 TG Chieftec 750W
- BESZÁMÍTÁS! Gigabyte GA-H610M i3 12100F 16GB DDR4 512GB SSD RX 6600 8GB Rampage SHIVA CM 600W
- BESZÁMÍTÁS! Gigabyte H610M i3 12100F 16GB DDR4 500GB SSD RTX 2060 Super 8GB Rampage SHIVA 500W
- Otthoni PC Komplett Szett Akár játékra is! Monitorral, Billentyűzettel, Egérrel
- Apple iPhone X 64 GB fekete - kártya független, tökéletes állapot - eredeti Apple szilikon tok
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 5060 Ti 16GB GAMER termékbeszámítással
- Apple Watch Series 6 44mm GPS Black 1 év Garancia Beszámítás Házhozszállítás
- Acer TravelMate P214 i3-1115G4 16GB 512GB 14" FHD 1év garancia
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Asus B550M R5 5600 32GB DDR4 500GB SSD RTX 5060 Ti 12GB Rampage SHIVA Gigabyte 650W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest