2015-08-22 17 views
0

我正在嘗試製作一個社交網絡,並且正在網站上添加通知欄,但該代碼未從數據庫加載數據。來自我的MYSQL的信息沒有顯示?

$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">Meddelande</div> 
    <div id="notificationsBody" class="notifications"> 
     Du har inga meddelanden! 
    </div> 
'; 
} else { 

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

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

     if ($newpm['status'] == 0) { 
      $newpm = '<div id="notificationTitle">Meddelande</div> 
         <div id="notificationsBody" notifications">'. 
         $newpm['subject'] .' '. $newpm['from'] . 
         '</div>'; 
     } 
    } 
} 
+0

當你運行這段代碼時會發生什麼?有什麼東西出現嗎?錯誤?白色屏幕?實際上是否應該顯示數據?你是否檢查過SQL是否正確生成? – andrewsi

+0

您使用的是上個千年的API(差不多)。加入21世紀。 – Strawberry

+0

在else部分使用錯誤消息,並使用echo命令來顯示$ newpm_sql,告訴我們結果是什麼 – Vijay

回答

1

您使用的是可變$newpm幾乎都因此毀滅什麼在它那點舉行。

使用第二個查詢一個新的變量,我在下面

$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">Meddelande</div> 
    <div id="notificationsBody" class="notifications">Du har inga</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">Meddelande</div> 
         <div id="notificationsBody" notifications">'. 
         $row['subject'] .' '. $row['from'] . 
         '</div>'; 
     } 
    } 
} 

使用$row作爲例子還你不應該使用mysql_數據庫訪問擴展,它即很快過時被刪除。正如您明顯瞭解的,花時間學習mysqli_擴展名或PDO擴展名。看到這個有助於決定你更喜歡哪一種Why shouldn't I use mysql_* functions in PHP?

+0

好的,謝謝,我該如何顯示5個最新的只有一個。 我的新問題是,當用戶閱讀那裏的消息,而應該顯示。但不是。 if(mysql_num_rows($ newpm_sql)== 0){ $ newpm ='

Message
You got no message
'; –

+0

對不起,這聽起來像一個新的問題。提出另一個問題 – RiggsFolly

+0

@RiggsFolly OP轉貼Smokey http://stackoverflow.com/q/32182247/ - 語法錯誤。 –