2012-01-06 49 views
0

我運行下面的腳本在我的數據庫結果繪製表格:資源ID#正在顯示 - PHP和MySQL

$user =& JFactory::getUser(); 

$currentUser = $user->id; 

$query = "SELECT * FROM jos_modelform_submissions WHERE user_id='".$currentUser."' AND model_type='model1'"; 
$db->setQuery($query); 
$tableResults = $db->query(); 

$formLayout .= $tableResults; 

echo "<div style='overflow:auto;'><table border='1' cellspacing='0' cellpadding='14'> 
<tr bgcolor='#0D7CCD'>"; 
echo "<TD style='text-align:center;color:#FFFFFF;' width='25px'><b>ID</b></TD> 
<TD style='text-align:center;color:#FFFFFF;' width='40px'><b>User ID</b></TD> 
<TD style='text-align:center;color:#FFFFFF;' width='200px'><b>Input</b></TD> 
<TD style='text-align:center;color:#FFFFFF;' width='600px'><b>Output</b></TD> 
<TD style='text-align:center;color:#FFFFFF;' width='110px'><b>Model Type</b></TD> 
<TD style='text-align:center;color:#FFFFFF;' width='100px'><b>Date/Time</b></TD> 
</tr>"; 
echo "<tr><td colspan ='6'><div style='width:1075px;height:300px;overflow:auto;'><table border='1' cellspacing='0' cellpadding='14'>"; 
while ($row = mysql_fetch_array($tableResults)) 
{ 
$mix = array("<", "/>", ">", "/"); 
$output1 = str_replace($mix, "#", $row['output']); 
$output2 = str_replace("#", "<BR/>", $output1); 
echo "<tr onclick=\"alert('Test');\" onmouseover=\"document.body.style.cursor='pointer'\" onmouseout=\"document.body.style.cursor='default'\">"; 
echo "<TD style='text-align:center;' width='25px'>" . $row['id'] . "</td>"; 
echo "<TD style='text-align:center;' width='40px'>" . $row['user_id'] . "</td>"; 
echo "<TD width='200px'>" . $row['input'] . "</td>"; 
echo "<TD width='600px'>" .stripslashes($output2). "</td>"; 
echo "<TD style='text-align:center;' width='110px'>" . $row['model_type'] . "</td>"; 
echo "<TD style='text-align:center;' width='100px'>" . $row['date_time'] . "</td>"; 
echo "</tr>"; 
} 
echo "</table> </div></td></tr></table></div></br></br>"; 

表顯示正常,但在我的頁面的底部我收到輸出資源ID#。我怎樣才能擺脫這一點?我的語法或邏輯有什麼錯誤嗎?你可以看到運行的代碼在這裏:

http://hanseninfotech.com/rtds/index.php/modelform1

+4

簡化您的問題並僅包含相關代碼。 – 2012-01-06 15:00:01

+0

這是所有相關的。這是全部相同的腳本。對數據庫的調用在第一部分中完成,但在顯示錶單後出現錯誤。 – hanleyhansen 2012-01-06 15:08:13

+0

你在哪裏處理錯誤?我的意思是:「或死(mysql_error());」 – tildy 2012-01-06 15:10:25

回答

2

你呼應$formLayout ?

從代碼:

$tableResults = $db->query(); 
$formLayout .= $tableResults; // what does this line do ???? 

呼應從查詢(返回)將導致 「資源###」

呼應文件中的輸出句柄(從fopen()返回)將產生相同的結果

+0

在任何時候我都不會迴應$ formLayout。但他們可能會在他們的代碼中。這是一個名爲RSForms的擴展。我必須連接到$ formLayout,因爲這是保存表單佈局(lol)的變量。那就是那條線。 – hanleyhansen 2012-01-06 15:57:44

+1

@hanleyhansen $ table當時的結果是「資源#」 - 即時博彩這是造成問題 - 嘗試評論該線,看看會發生什麼... – ManseUK 2012-01-06 15:59:06

+0

這工作!但我不明白爲什麼。猜猜我錯了。 – hanleyhansen 2012-01-06 16:04:06

1

依我之見,你dont't手柄,如果你有一個零元素。

if (!$tableResults = $db->query()) { 
    echo $db->stderr(); 
    return false; 
    } 

此外,您以前使用Joomla的功能,爲什麼你不再使用它?使用$ row = $ db-> loadAssocList();而不是使用mysql函數。和foreach。

$row = $db->loadAssocList(); 
foreach ($row as $key=>$value) 
{ 
$mix = array("<", "/>", ">", "/"); 
$output1 = str_replace($mix, "#", $value['output']); 
$output2 = str_replace("#", "<BR/>", $output1); 
echo "<tr onclick=\"alert('Test');\" onmouseover=\"document.body.style.cursor='pointer'\" onmouseout=\"document.body.style.cursor='default'\">"; 
echo "<TD style='text-align:center;' width='25px'>" . $value['id'] . "</td>"; 
echo "<TD style='text-align:center;' width='40px'>" .$value['user_id'] . "</td>"; 
echo "<TD width='200px'>" . $value['input'] . "</td>"; 
echo "<TD width='600px'>" .stripslashes($output2). "</td>"; 
echo "<TD style='text-align:center;' width='110px'>" . $value['model_type'] . "</td>"; 
echo "<TD style='text-align:center;' width='100px'>" . $value['date_time'] . "</td>"; 
echo "</tr>"; 
} 

可能有幫助。

另外我對HTML部分的看法:把HTML放到PHP代碼中是khm ......我認爲這是老式的編程風格。儘量避免像上面的例子那樣混合使用PHP和HTML。嘗試在HTML文件中使用HTML,在PHP文件中使用php代碼,並將它們最小化。我建議使用任何CMS或模板引擎,並將php和HTML代碼分開。

+0

謝謝!我會記住這一點!! – hanleyhansen 2012-01-06 16:06:38

0

您發佈的代碼不會輸出資源ID。