Ново известие заявка

niksdevil

Registered
Здравейте, как мога да изкарам примерно като непрочетени някой известия
Код:
<?php if($session->logged_in) {
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
?>
<?php echo "$row[date] $row[time] - "; 
if($row['act'] == 'comm') {
	echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
	echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
	echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a>";
}
if($row['act'] == 'vote') {
	echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас";
}
?>
<br>
<?php
}
?>
Като някой напише нещо ново да пише примерно известия(1)
 
PHP:
<?php if($session->logged_in) {
$cq = mysql_query("SELECT COUNT(id) FROM `news` WHERE `to`='$session->username' AND `readed`='no'")or die(mysql_error());//ново
echo " нови известия($cq)";//ново
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
mysql_query("UPDATE `news` SET readed='yes'  WHERE `to`='$session->username' AND `id`='".$row['id']."'")or die(mysql_error());//ново
?>
<?php echo "$row[date] $row[time] - "; 
if($row['act'] == 'comm') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a>";
}
if($row['act'] == 'vote') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас";
}
?>
<br>
<?php
}
?>
Добави 1 поле readed varchar(255) default "no" в таблицата news :wink:
 
niksdevil каза:
А как, да ги направя като се види 1 път ,вече да не е ново, и как да изкарам броя на непрочетените известия преди преглед ?
С кода на колегата ще стане точно това. :)
 
Да,но го вади така : Нови известия (Resource id #18 ) ?

edit: Забравих този файл...

Код:
<?php
function news($user, $to, $act, $desc) {
	$date = date('d M');
	$time = date("H:i");
	$sql = mysql_query("INSERT INTO `news` VALUES('', '$user', '$date', '$to', '$act', '$desc', '$time')");
}
 
PHP:
<?php if($session->logged_in) {
$cq = mysql_query("SELECT COUNT(id) FROM `news` WHERE `to`='$session->username' AND `readed`='no'")or die(mysql_error());//ново
$br = mysql_num_rows($cq);
echo " нови известия($br)";//ново
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
mysql_query("UPDATE `news` SET readed='yes'  WHERE `to`='$session->username' AND `id`='".$row['id']."'")or die(mysql_error());//ново
?>
<?php echo "$row[date] $row[time] - "; 
if($row['act'] == 'comm') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a>";
}
if($row['act'] == 'vote') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас";
}
?>
<br>
<?php
}
?>
 
Да, сега показва ,че имам 1 ново известие , обаче не го показва в известията мисля, че има общо с този код
Код:
<?php
function news($user, $to, $act, $desc) {
   $date = date('d M');
   $time = date("H:i");
   $sql = mysql_query("INSERT INTO `news` VALUES('', '$user', '$date', '$to', '$act', '$desc', '$time')");
}
 
Не мисля... В този първия код, който си дал никъде не ползваш тази функция и не мога да разбера за какво точно ти е.
 
Добре дайте да се опитаме при записване на коментара да записва в новините readed=no

Код:
$sql = mysql_query("INSERT INTO `users_comm` VALUES('', '$session->username', '$req_user', '$com', '$date', '0')");
	if($sql) {
news($session->username, $req_user, "comm", "");
?>
Код:
<?php
function news($user, $to, $act, $desc) {
	$date = date('d M');
	$time = date("H:i");
	$sql = mysql_query("INSERT INTO `news` VALUES('', '$user', '$date', '$to', '$act', '$desc', '$time', '$pro4eteno')");
}

?>
SQL
Код:
CREATE TABLE `news` (
  `id` int(11) NOT NULL auto_increment,
  `user` varchar(25) collate utf8_unicode_ci NOT NULL,
  `date` text collate utf8_unicode_ci NOT NULL,
  `to` varchar(25) collate utf8_unicode_ci NOT NULL,
  `act` text collate utf8_unicode_ci NOT NULL,
  `desc` text collate utf8_unicode_ci NOT NULL,
  `time` text collate utf8_unicode_ci NOT NULL,
  `pro4eteno` varchar(255) collate utf8_unicode_ci NOT NULL default 'no',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=93015 ;
 
окс по твоя код и sql това ще ти е кода

PHP:
<?php if($session->logged_in) {
$cq = mysql_query("SELECT COUNT(id) AS count FROM `news` WHERE `to`='$session->username' AND `pro4eteno`='no'")or die(mysql_error());//ново
$cqr = mysql_fetch_assoc($cq);
$count = $cqr['count'];
echo " нови известия($count )";//ново
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
mysql_query("UPDATE `news` SET pro4eteno='yes'  WHERE `to`='$session->username' ")or die(mysql_error());//ново
?>
<?php echo "$row[date] $row[time] - "; 
if($row['act'] == 'comm') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a>";
}
if($row['act'] == 'vote') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас";
}
?>
<br>
<?php
}
?>
 
е то по принцип нали е зададено като default в базата? може от заявката за добавяне да го махнеш въобще... а бтв направи го така
mysql_query("UPDATE `news` SET pro4eteno='yes' WHERE `to`='$session->username' ")or die(mysql_error());//ново

while($row = mysql_fetch_array($q)) {
?>

т.е query-то преди while-a :wink: :wink:
 
PHP:
<?php 
function news($user, $to, $act, $desc) { 
   $date = date('d M'); 
   $time = date("H:i"); 
   $sql = mysql_query("INSERT INTO `news`(user,date,to,act,desc,time,pro4eteno) VALUES('$user', '$date', '$to', '$act', '$desc', '$time', 'no')"); 
} 

?>
:idea: :idea:
 
И последно да отделя примерно да показва новите известия с <i>
Код:
<?php if($session->logged_in) {
$cq = mysql_query("SELECT COUNT(id) AS count FROM `news` WHERE `to`='$session->username' AND `pro4eteno`='no'")or die(mysql_error());//ново
$cqr = mysql_fetch_assoc($cq);
$count = $cqr['count'];
echo " нови известия($count )<br>";//ново
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
mysql_query("UPDATE `news` SET pro4eteno='yes'  WHERE `to`='$session->username' ")or die(mysql_error());//ново
?>
<?php echo "$row[date] $row[time] - "; 
if($row['act'] == 'comm') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a>";
}
if($row['act'] == 'vote') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас";
}
?>
 
PHP:
<?php if($session->logged_in) {
$cq = mysql_query("SELECT COUNT(id) AS count FROM `news` WHERE `to`='$session->username' AND `pro4eteno`='no'")or die(mysql_error());//ново
$cqr = mysql_fetch_assoc($cq);
$count = $cqr['count'];
echo " нови известия($count )<br>";//ново
$today = date("d M");
$q = mysql_query("SELECT * FROM `news` WHERE `to`='$session->username' ORDER by `id` DESC LIMIT 30");
while($row = mysql_fetch_array($q)) {
?>
<?php echo "$row[date] $row[time] - "; 
if($row[pro4eteno]=='no') {$is = "<i>";$ie = "</i>"}
echo $is;
if($row['act'] == 'comm') {
   echo "<a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти написа коментар";
}
if($row['act'] == 'fr') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> стана приятел с теб";
}
if($row['act'] == 'meet') {
   echo "<a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> си уреди среща със <a href=\"user.php?user=$row[to]\"><b>$row[to]</b></a> ";
}
if($row['act'] == 'vote') {
   echo " <a href=\"user.php?user=$row[user]\"><b>$row[user]</b></a> ти даде глас ";
echo $ie;
}
mysql_query("UPDATE `news` SET pro4eteno='yes'  WHERE `to`='$session->username' ")or die(mysql_error());//ново
?>
 

Back
Горе