Лични съобщения икона за ново съобщение

sn1p3r

Registered
Здравейте, имам система за лични съобщения и се опитвам да сложа иконка за получено съобщение и вече като го прочетеш тя да се смени ето и кода на системата ми:

Код:
<?
if ($username) {
switch ($_GET['page']) {
default: 
echo "
<a href='sendmessage.php' class='sendicon'></a><br /><br />";

echo "<center><table border='1'><tr><td width='70'><center></center></td><td width='70'><center>От:</center></td><td width='200'><center>Тема</center></td><td><center>Опции</center></td><tr></center>";
$sql = "SELECT * FROM messages WHERE touser = '$username'";
$res = mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_assoc($res)) {
echo "<center><tr><td><img src='img/message/message.png'></td>
<td>$row[from]</td><td>$row[title]</td><td>
<a href='viewmessage.php?id=$row[id]'><img src='img/message/read.png'></a>   
<a href='delmessage.php?id=$row[id]'><img src='img/message/del.png'></a></td><tr></center>";

}
echo "</table>";
break;
case "write":
?>

Искам иконката img/message/message.png да я направя да се променя по това прочел ли си съобщението или не. Ако някой има идея моля ви да я споделите :)
 
незнам аз ли немога да схвана или ти не ни казваш каде искаш да я сложиш ... Както и да е .. това става с JS , може и само PHP , но друго си е динамичноста ..

така.. ето как трябва да стане

след като се натисне бутона за четене ,трябва да го пратиш с JS до PHP -> PHP ще прати заявка до Mysql да промени порето от НЕ прочетено до прочетено и да върне резултат дали всичко е ОК , и ако е с JS сменяш снимката :)

HTML:
<script>
function setReaded(id)
{
   post("failaZaUpdateNaReda.php",{id:""+id}, function () { document.snimkaZaPromenqne.src='http://thepurplenotebook.com/wp-content/uploads/2011/08/ok.jpg'; });
}
</script>

<!-Примерно имащ еитука 1 снимка ..  -->
<img src='http://t3.gstatic.com/images?q=tbn:ANd9GcQ_q1wk_h_Np0HCLOo2Yf41GDPAIOq5nt-hRdCD49AvWsjo3xmViA'  name='snimkaZaPromenqne' />


<a href='viewmessage.php?id=$row[id]'><img src='img/message/read.png' onclick='setReaded($row[id]);'></a>

в php файла ти трябва само заявка ..
PHP:
<?
include "config.php";
$id = $_POST['id'];
mysql_query("Update table SET prochetena='da' where id='$id'");
?>

И си готов , при натискане на линка за прочитане снимката ще се сменя.. :)
 
Нещо не успях да ти разбера кода :\

Преписах го, но не го разбирам и не се получи виж как стана:

Код:
<?
session_start();
include "config.php";
$username = $_SESSION['username'];
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<script>
function setReaded(id)
{
   post("failaZaUpdateNaReda.php",{id:""+id}, function () { document.snimkaZaPromenqne.src='http://thepurplenotebook.com/wp-content/uploads/2011/08/ok.jpg'; });
}
</script>
<?
if ($username) {
switch ($_GET['page']) {
default: 
echo "
<a href='sendmessage.php' class='sendicon'></a><br /><br />";
$id = $_POST['id'];
mysql_query("Update table SET prochetena='da' where id='$id'");
echo "<center><table border='1'><tr><td width='70'></td><td width='70'><center>От:</center></td><td width='200'><center>Тема</center></td><td><center>Опции</center></td><tr></center>";
$sql = "SELECT * FROM messages WHERE touser = '$username'";
$res = mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_assoc($res)) {
echo "<center><tr><td><img src='img/message/message.png'></td>
<td>$row[from]</td><td>$row[title]</td><td>
<a href='viewmessage.php?id=$row[id]'><img src='img/message/read.png' onclick='setReaded($row[id]);'></a>   
<a href='delmessage.php?id=$row[id]'><img src='img/message/del.png'></a></td><tr></center>";

}
echo "</table>";
break;
case "write":
?>

Гледам post("failaZaUpdateNaReda.php" и трябва да направя такова filaZaUpdateNaReda.php ли?
 
нестава само с преписване :D

относно файла да трабва да го направиш но не с това име , може да е с каквото искаш просто да е др фаил .. и вътре ти е простата заявка за да промени амм.. реда от Не прочетен в прочетен .. :) :?:
 
Знам, че не става с преписване и точно затова се мъчех да ти разбера кода сега ще видя дали ще стане така както мисля :D
 
Не става ;\ сега ще дам подробна информация:

Sql:

Код:
CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(12) NOT NULL AUTO_INCREMENT,
  `from` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `title` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `touser` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `message` text COLLATE utf8_unicode_ci NOT NULL,
  `unread` int(1) NOT NULL DEFAULT '0',

Кода няма да го слагам, че да не те обърка. Всичко съм си направил само имам 2 картинки идната на отворен плик другата на затворен и те ще са ми пред новото съобщение(това си го правя без проблем :D ). Но проблема ми, е че не знам как да направя когато си прочел писмото да е картинката с отворения плик, а когато не си го прочел да е затворения. Кода, който ми даде го пробвах пипах го какво ли не пробвах не стана :( Надявам се сега като ти дадох SQL да успееш да ми помогнеш.

И ако не е проблем ако някой даде код да сложи и кратко обяснение да ми стане ясно да го науча, че следващия път да не ми трябва пак да питам :)

Благодаря на всеки опитал да помогне :)
 
пак не разбрах кво да нарпая ма карай ..

я виж еитайли трябва да са получи ..

PHP:
<?
session_start();
include "config.php";
$username = $_SESSION['username'];

if ($username) {
switch ($_GET['page']) {
default:
echo "
<a href='sendmessage.php' class='sendicon'></a><br /><br />";
$id = $_POST['id'];
mysql_query("Update table SET prochetena='da' where id='$id'");
echo "<center><table border='1'><tr><td width='70'></td><td width='70'><center>От:</center></td><td width='200'><center>Тема</center></td><td><center>Опции</center></td><tr></center>";
$sql = "SELECT * FROM messages WHERE touser = '$username'";
$res = mysql_query($sql) or die (mysql_error());
while($row = mysql_fetch_assoc($res)) {
if($row['unread'] > 1)
{
 $img = "Прочетено "; // снимка за прочетено
}else
	{
	 $img = "Не прочетено "; //  снимка за НЕ прочетено
	}
echo "<center><tr><td>$img</td>
<td>$row[from]</td><td>$row[title]</td><td>
<a href='viewmessage.php?id=$row[id]'><img src='img/message/read.png' onclick='setReaded($row[id]);'></a>  
<a href='delmessage.php?id=$row[id]'><img src='img/message/del.png'></a></td><tr></center>";

}
echo "</table>";
break;
case "write":
?>
 
значи в файла кадето отваряш писмото напиши 1 заявка..

PHP:
<?php 

mysql_query("UPDATE tablicata SET `unreader`='1' Where id='$_GET[id]'");

?>

като $_GET[id] .. си го промени , както и таблицата и полето :Д в заявката и сичко ще е ок
 
Да ама пак не :D

Код:
<?
if ($username) {
switch ($_GET['page']) {
default: 
$id = $_GET['id'];
if ($id) {
mysql_query("UPDATE messages SET `unreader`='1' Where id='$_GET[id]'");
$sql = "SELECT * FROM messages WHERE id='$id'";
$result = mysql_query($sql) or die (mysql_error());
$row = mysql_fetch_assoc($result);
if ($row[touser] == $username) {
echo "<center>От: <span style='color:#DF0101'>$row[from]</span><br />
Тема: $row[title]<br /><br />
Съобщение: <br />
$row[message]<br />
<br /></center>";
?>

Пак седи само на непрочетеното.
 
В структурата на таблицата, която си дал по-горе, името на полето е unread, а пък в заявката си написал unreader. Ако това в заявката е грешното, поправи го, иначе няма да записва нищо. След ъпдейта, не си използвал die(mysql_error()), което по принцип е правилно, но така не виждаш, че там MySQL връща грешка.
 
Оправих unread сложих or die (mysql_error());, но пак не става показва си картинката за непрочетено писмо
 

Back
Горе