0

PHP、Ajax、JS を使用して、Web サイトにリアルタイム通知を追加しようとしています。PHPファイルを正常にリクエストしてページにロードするので、何も問題はありませんが、PHPが間違った行数を返し、ファイルに問題がないように見えるので、本当に混乱しています。

これが私のPHPです:

<?php
include("config.php");

$query = "SELECT * FROM notifications WHERE user = '$myUser' AND isread = '0'";
$result = mysql_query($query);
$num = mysql_num_rows($result);

if($num == 0){
print "";
} else if($num !== 0){
print "<span class='notification'>&nbsp;&nbsp;" . $num . "&nbsp;&nbsp;</span>";
}
?>

行が返されない場合は "" と表示されますが、ユーザー セッションでテストする通知が設定されており、未読としてマークされています。ページ自体で使用すると、まったく同じクエリで完全に読み込まれるため、ここで何が起こっているのかまったくわかりません。

4

1 に答える 1

1

この行は次のようになります。

else{
 print "<span class='notification'>&nbsp;&nbsp;" . $nNum . "&nbsp;&nbsp;</span>";
}
?>

または

else if($num != 0){
  print "<span class='notification'>&nbsp;&nbsp;" . $num . "&nbsp;&nbsp;</span>";
}
?>

------------------編集 ---------------------------

これにエコーしてください:

<?php
include("config.php");

$query = "SELECT * FROM notifications WHERE user = '$myUser' AND isread = '0'";
$result = mysql_query($query);
$num = mysql_num_rows($result);

echo $query; //THIS and copy that and put this directly on your mysql manager

if($num == 0){
print "";
} else if($num != 0){
print "<span class='notification'>&nbsp;&nbsp;" . $num . "&nbsp;&nbsp;</span>";
}
?>

PS: mysql 拡張機能を使用しないでください... mysqli または PDO を使用してください...コードは sql インジェクションに対して脆弱です

于 2013-04-27T23:36:25.077 に答える