Данные из моей базы данных MySQL не отображаются правильно

Как мне сделать так, чтобы он показывал все сообщения, отправленные только по одному, и другая проблема заключается в том, что когда пользователь прочитал там сообщение, а эта часть кода ниже не показывается. Полный код вы можете найти в нижней части страницы.

ЭТА ЧАСТЬ КОДА НЕ ПОКАЗЫВАЕТ ПОСЛЕ ПОЛЬЗОВАТЕЛЯ, ЧИТАЮЩЕГО НОВОЕ СООБЩЕНИЕ, НО Я НЕ ПОКАЖУ:

    $newpm = '<div id="notificationTitle">Message</div>
<div id="notificationsBody" class="notifications">You have no new messages</div>';

ПОЛНЫЙ КОД:

    $newpm_sql = mysql_query("SELECT * FROM `pm`
WHERE `to` = '". $_SESSION['id'] ."'
ORDER BY `id` DESC") or die(mysql_error());

if (mysql_num_rows($newpm_sql) == 0) {
$newpm = '<div id="notificationTitle">Message</div>
<div id="notificationsBody" class="notifications">You have no new messages</div>';
} else {
while ( $row = mysql_fetch_array( $newpm_sql )) {

$from_sql = mysql_query("SELECT * FROM `members`
WHERE `id` = '". $newpm_sql['from'] ."'")
or die(mysql_error());
$from = mysql_fetch_array($from_sql);

if ($row['status'] == 0) {
$newpm = '<div id="notificationTitle">Message</div>
<div id="notificationsBody" notifications">
<b><a href="page.php?name=profile&id='. $row['from'] .'">'. $row['subject'] .'</a></b><br> '. $row['text'] .'
'</div>';
}
}
}

-3

Решение

Я вижу ошибку, которую я пропустил в прошлый раз.

Это утверждение

$newpm = '<div id="notificationTitle">Message</div>
<div id="notificationsBody" class="notifications">You have no new messages</div>';

запускается внутри while цикл и, следовательно, вы должны объединить эти несколько итераций на $newpm с помощью .= и не только =

    while ( $row = mysql_fetch_array( $newpm_sql )) {

$from_sql = mysql_query("SELECT * FROM `members`
WHERE `id` = '". $newpm_sql['from'] ."'")
or die(mysql_error());
$from = mysql_fetch_array($from_sql);

if ($row['status'] == 0) {


//$newpm = '<div id="notificationTitle">Message</div>
newpm .= '<div id="notificationTitle">Message</div>
<div id="notificationsBody" notifications">
<b>
<a href="page.php?name=profile&id='. $row['from'] .'">'. $row['subject'] .'</a>
</b>
<br> '.
$row['text'] .'
'</div>';
}
}
1

Другие решения

Сначала запустите это:

SELECT * FROM `pm` WHERE `to` = '<your SESSION ID>'
ORDER BY `id` DESC

и посмотрим, что это даст.

Вы также можете сделать:

var_dump(mysql_num_rows($newpm_sql));die;

после запуска этого mysql_query в первой строке и посмотрите, вернет ли он то, что вы ожидаете.

А также, вы можете переключиться на PDO — вы не пожалеете об этом, так как теперь вы используете старые функции php.

0

ВЕСЬ КОД ДЛЯ ФАЙЛА (page.php):

 <?php
session_start();
include('pages/config.php');


if (!isset($_SESSION['username']))
{ header('Location: index.php'); }


mysql_query("UPDATE `members` SET `active_time` = NOW() WHERE `id` = '". $_SESSION['id'] ."'") or die(mysql_error());


mysql_query("UPDATE `members` SET `status` = '0' WHERE `active_time` < DATE_SUB(now(), INTERVAL 30 MINUTE)") or die(mysql_error());
if (isset($_SESSION['username']))
{ mysql_query("UPDATE `members` SET `status` = '1' WHERE `id` = '". $_SESSION['id'] ."'"); }

ini_set('display_errors',0);

if (!isset($_GET['name']) or trim(empty($_GET['name'])))
{ $name = 'welcome'; }

else
{ $name = mysql_real_escape_string($_GET['name']); }

$page_sql = mysql_query("SELECT * FROM `pages` WHERE `name` = '". $name ."'") or die(mysql_error());
$page = mysql_fetch_array($page_sql);




$newpm_sql = mysql_query("SELECT * FROM `pm` WHERE `to` = '". $_SESSION['id'] ."' ORDER BY `id` DESC") or die(mysql_error());

if (mysql_num_rows($newpm_sql) == 0) {
$newpm = 'You have no new messages';
} else {
while ( $row = mysql_fetch_array( $newpm_sql )) {

$from_sql = mysql_query("SELECT * FROM `members`
WHERE `id` = '". $newpm_sql['from'] ."'")
or die(mysql_error());
$from = mysql_fetch_array($from_sql);

if ($row['status'] == 0) {
$newpm = '<b><a href="page.php?name=profile&id='. $row['from'] .'">'. $row['subject'] .'</a></b><br> '. $row['text'] .'
';
}
}
}


$userinfo_sql = mysql_query("SELECT * FROM `members` WHERE `id` = '". $_SESSION['id'] ."'") or die(mysql_error());
$userinfo = mysql_fetch_array($userinfo_sql);

if (empty($userinfo['picture']))
{ $picture = 'images/nothing.png'; }
elseif (!empty($userinfo['picture']))
{ $picture = $userinfo['picture']; }

if ($userinfo['access'] >= 1)
{ $page_admin = '<li><a href="page.php?name=admin">Administration</a></li>'; }



function bbcode($text)
{


$regexp = array(
"/\[url=(http:\/\/)?(.+)\](.+)\[\/url\]/iU" => "<a href=\"http://$2\" target=\"_blank\">$3</a>", // [url=][/url]
"/\[url\](http:\/\/)?(.+)\[\/url\]/iU" => "<a href=\"http://$2\" target=\"_blank\">$2</a>", // [url][/url]
"/\[img\](http:\/\/)?(.+)\[\/img\]/iU" => "<img src=\"http://$2\" border=\"0\" alt=\"\" />", // [img][/img]
"/\[email\]([a-z0-9\.-_]+@[a-z0-9]+\.[a-z0-9]+)\[\/email\]/iU" => "<a href=\"mailto:$1\">$1</a>", // [email][/email]
"/\[b\](.+)\[\/b\]/iU" => "<strong>$1</strong>", // [b][/b]
"/\[s\](.+)\[\/s\]/iU" => "<del>$1</del>", // [s][/s]
"/\[i\](.+)\[\/i\]/iU" => "<em>$1</em>", // [i][/i]
"/\[u\](.+)\[\/u\]/iU" => "<ins>$1</ins>", // [u][/u]
"/\[hr\]/i" => "<hr />", // [hr]
"/\
(.+)\[\/quote\]/iU" => "<p><strong>Citat:</strong> \"$1\"</p>", //
"/\
(.+)\[\/quote\]/iU" => "<p><strong>$1 skrev:</strong> \"$2\"</p>", //
"/\[blink\](.+)\[\/blink\]/iU" => "<span style=\"text-decoration: blink;\">$1</span>", // [blink][/blink] "/\[marquee\](.+)\[\/marquee\]/iU" => "<marquee>$1</marquee>", // [marquee][/marquee] "/\[center\](.+)\[\/center\]/iU" => "<div style=\"text-align: center;\">$1</div>", // [center][/center] "/\[right\](.+)\[\/right\]/iU" => "<div style=\"text-align: right;\">$1</div>", // [right][/right] "/\[left\](.+)\[\/left\]/iU" => "<div style=\"text-align: left;\">$1</div>", // [left][/left] "/\[color=darkred\](.+)\[\/color\]/iU" => "<span style=\"color: darkred;\">$1</span>", "/\[color=red\](.+)\[\/color\]/iU" => "<span style=\"color: red;\">$1</span>", "/\[color=orange\](.+)\[\/color\]/iU" => "<span style=\"color: orange;\">$1</span>", "/\[color=brown\](.+)\[\/color\]/iU" => "<span style=\"color: brown;\">$1</span>", "/\[color=yellow\](.+)\[\/color\]/iU" => "<span style=\"color: yellow;\">$1</span>", "/\[color=green\](.+)\[\/color\]/iU" => "<span style=\"color: green;\">$1</span>", "/\[color=olive\](.+)\[\/color\]/iU" => "<span style=\"color: olive;\">$1</span>", "/\[color=cyan\](.+)\[\/color\]/iU" => "<span style=\"color: cyan;\">$1</span>", "/\[color=blue\](.+)\[\/color\]/iU" => "<span style=\"color: blue;\">$1</span>", "/\[color=darkblue\](.+)\[\/color\]/iU" => "<span style=\"color: darkblue;\">$1</span>", "/\[color=indigo\](.+)\[\/color\]/iU" => "<span style=\"color: indigo;\">$1</span>", "/\[color=violet\](.+)\[\/color\]/iU" => "<span style=\"color: violet;\">$1</span>", "/\[color=white\](.+)\[\/color\]/iU" => "<span style=\"color: white;\">$1</span>", "/\[color=black\](.+)\[\/color\]/iU" => "<span style=\"color: black;\">$1</span>", "/\[size=1\](.+)\[\/size\]/iU" => "<span style=\"font-size: 18px;\">$1</span>", "/\[size=2\](.+)\[\/size\]/iU" => "<span style=\"font-size: 24px;\">$1</span>", "/\[size=3\](.+)\[\/size\]/iU" => "<span style=\"font-size: 32px;\">$1</span>", "/\[size=4\](.+)\[\/size\]/iU" => "<span style=\"font-size: 48px;\">$1</span>", "/\[size=\-1\](.+)\[\/size\]/iU" => "<span style=\"font-size: 12px;\">$1</span>", "/\[size=\-2\](.+)\[\/size\]/iU" => "<span style=\"font-size: 10px;\">$1</span>", "/\[youtube\](.+)\[\/youtube\]/iU" => "<object width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/$1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><embed src=\"http://www.youtube.com/v/$1\" type=\"application/x-shockwave-flash\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object>", // [youtube][/youtube] "/\[code\](.+)\[\/code\]/eU" => "highlight_string(\"$1\", true)" // [code][/code] ); foreach ($regexp as $regexps => $regexp_replacements) { $text = preg_replace($regexps, $regexp_replacements, $text); } return $text; } $page_sidemenu = ' <li id="sidemenu-topli"> <table cellpadding="0" cellspacing="0" style="width: 100%"> <tr> <td><b>Välkommen, </b>'. $userinfo['username'] .'!</td> </tr> <tr> <td> <table cellpadding="0" cellspacing="0" style="width: 100%"> <tr> <td><img class="pagePicture" src="'. $userinfo['picture'] .'" height="85" width="80" /></td> <td><a href="page.php?name=guestbook&id='. $userinfo['id'] .'">Gästbok</a> <br><a href="page.php?name=picture&id='. $userinfo['id'] .'">Fotoalbum</a> <br><a href="page.php?name=blog&id='. $userinfo['id'] .'">Blogg</a> </td> </tr> </table> </td> </tr> </table> </li> <li id="sidemenu-li"><a href="page.php?name=forum">Forum</a></li> <li id="sidemenu-li"><a href="page.php?name=gallery">Galleri</a></li> <li id="sidemenu-li"><a href="page.php?name=userlist">Medlemmar</a></li> <li id="sidemenu-li"><a href="page.php?name=livemess">Livemess</a></li> '; $livemess_sql = mysql_query("SELECT `userid`, `message` FROM `livemess` ORDER BY `id` DESC LIMIT 0,1") or die(mysql_error()); $livemess = mysql_fetch_array($livemess_sql); $livemessuser_sql = mysql_query("SELECT * FROM `members` WHERE `id` = '". $livemess['userid'] ."'") or die(mysql_error()); $livemessuser = mysql_fetch_array($livemessuser_sql); if (empty($livemessuser['picture'])) { $livemesspicture = 'images/nothing.png'; } else { $livemesspicture = $livemessuser['picture']; } $page_menu = ' <div id="header"> <div class="top-bar"> <div class="top-bar-container"> <ul id="nav"> <li><a href="#">Home</a></li> <li><a href="#">About</a></li> <li id="notification_li"> <span id="notification_count">3</span> <a href="#" id="notificationLink">Meddelande</a> <div id="notificationContainer"> <div id="notificationTitle">Meddelande</div> <div id="notificationsBody" class="notifications"> '. $newpm .' </div> <div id="notificationFooter"><a href="#">Visa alla</a></div> </div> </li> <li><a href="#">Logout</a></li> </ul> </div> </div> <div id="subbar"> <div class="subbar-divtable"> <div class="left"><img class="subbar-img" src="'. $livemesspicture .'" border="0" width="60" height="60" /></div> <div class="right"><b><a style="font-size: 15px;" href="page.php?name=profile&id='. $livemessuser['id'] .'">'. $livemessuser['username'] .'</a> </b><br><br>'. htmlspecialchars($livemess['message']) .'</div> </div> </div> '; $page_subject = $page['subject']; $page_content = $page['url']; if ($userinfo['banned'] == 1 and $name != 'logout') { echo "<script type='text/javascript'> alert('Ditt konto är spärrat från ". $sitename .".'); </script>"; exit; } else { if (mysql_num_rows($page_sql) == 0) { echo "<script type='text/javascript'> alert('Sidan du söker efter kan inte hittas.'); </script>"; exit; } } $design_sql = mysql_query("SELECT `folder` FROM `styles` WHERE `active` = '1'") or die(mysql_error()); $design = mysql_fetch_array($design_sql); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!-- Design by Free CSS Templates http://www.freecsstemplates.org Released for free under a Creative Commons Attribution 2.5 License Name : Compromise Description: A two-column, fixed-width design with dark color scheme. Version : 1.0 Released : 20081103 --> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="keywords" content="" /> <meta name="description" content="" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?php echo $sitename; ?></title> <link href="styles/<?php echo $design['folder']; ?>/style.css" rel="stylesheet" type="text/css" media="screen" /> <script type="text/javascript" src="styles/<?php echo $design['folder']; ?>/js/jquery.min.js"></script> <script type="text/javascript" > $(document).ready(function () { $("#notificationLink").click(function () { $("#notificationContainer").fadeToggle(300); $("#notification_count").fadeOut("slow"); return false; }); $(document).click(function () { //hide notification popup on doucument click $("#notificationContainer").hide(); }); $("#notificationContainer").click(function () { return false; }); }); </script> </head> <body> <?php include('styles/'. $design['folder'] .'/body.php'); ?> <div id="footer"> <p>Copyright <?php echo $sitename .' '. date('Y'); ?>. Design av <a href="#"> Gr4x</a>.</p> </div> </body> </html>
0
По вопросам рекламы [email protected]