2011-08-08 78 views
0
function show_post($user_id) 
      { 
       global $database; 
       $post = array(); 

       $sql = sprintf("SELECT body,stamp FROM post WHERE user_id = '%s' ORDER BY stamp DESC ",$user_id); 

       $result = $database->query($sql); 

       while($data = $database -> fetch_array($result)) 
       { 
         $post[] = array(
         'user_id' => $user_id, 
         'body' => $data->'body', 
         'stamp' => $data->'stamp' 
         ); 


       } 

        return $post; 

      } 

$posts = $link->show_post($_SESSION['user_id']); 

     if(count($posts)) 
     { 
     ?> 
     <table border='1' cellspacing='0' cellpadding='5' width='500'> 
     <?php 
      foreach($posts as $key => $list) 
      { 
       echo "<tr valign='top'>\n"; 
       echo "<td>".$list['user_id'] ."</td>\n"; 
       echo "<td>".$list['body'] ."<br/>\n"; 
       echo "<small>".$list['stamp'] ."</small></td>\n"; 
       echo "</tr>\n"; 

      } 


     ?> 
      </table> 
     <?php 
     }else 
     { 
      echo "nothing entered"; 

     } 

這將返回:資源ID#8如何解決MYSQL/PHP中的「資源ID#8」錯誤消息?

你能幫助我找到了問題?

+1

這不是一個錯誤消息。你在某處打印出連接句柄'$ database'。這看起來並不像這裏發生的代碼。 – mario

+0

錯誤不在所提供的代碼塊中......它位於其他地方,可能您試圖回顯數據集/ DB句柄,如 – Rahul

+0

如果您在執行fetch_array,那麼$ data - >'body'不是正確的訪問的方式;它應該是$ data ['body']。此外,您的sprintf似乎沒有被轉義,並且可以接受SQL注入(即使user_id現在來自會話,但仍然是一種非常好的做法,無論如何總是轉義每個參數)。 – Zimzat

回答

0

添加這一點,看看它的回聲回來

function show_post($user_id) 
      { 
       global $database; 
       $post = array(); 

       $sql = sprintf("SELECT body,stamp FROM post WHERE user_id = '%s' ORDER BY stamp DESC ",$user_id); 

       $result = $database->query($sql); 

       while($data = $database -> fetch_array($result)) 
       { 
         echo '<pre>'; print_r($data); echo '</pre><br />'; 

         $post[] = array(
         'user_id' => $user_id, 
         'body' => $data->'body', 
         'stamp' => $data->'stamp' 
         ); 


       } 

        return $post; 

      } 

除非是的print_r($數據)打印一個奇怪的現象,我看不出有什麼不對的代碼塊。可能與你正在使用的數據庫類有關。

+0

print_r($ data)返回1 1 1 1(用於user_id),它是會話標識(Assigned 1)和Resource id#8 – Joshy

+0

我認爲問題出在$ post [] = array( *** 'body'=> $ data - >'body', 'stamp'=> $ data - >'stamp' ); – Joshy

+0

您可能想用fetch_assoc()而不是fetch_array()嘗試一次。 – k4t434sis

相關問題