从一个名为“ submission”的MySQL表中,该表包含“ loginid,submissionid,title,url,datesubmitted,displayurl”字段,我想打印一个HTML表,其中包含所有“ title”和相应的“ datesubmitted”,其中“ loginid”等于“ $个人资料。”我尝试使用的代码如下。它不起作用。有什么想法为什么不起作用?
提前致谢,
约翰
$profile = $_GET['profile'];
$sqlStr = "SELECT loginid, submissionid, title, url, datesubmitted, displayurl
FROM submission
WHERE loginid = $profile
ORDER BY datesubmitted DESC";
$result = mysql_query($sqlStr);
$arr = array();
echo "<table class=\"samplesrec\">";
while ($row = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td class="sitename1"><a href="http://www.'.$row["url"].'">'.$row["title"].'</a></td>';
echo '</tr>';
echo '<tr>';
echo '<td class="sitename2">'.$row["datesubmitted"].'</a></td>';
echo '</tr>';
}
echo "</table>";
最佳答案
您的查询可能失败。
尝试回显mysql_error()的返回值;在尝试查询以查看可能是什么问题之后。
您还应该保护您的输入免受注入。如果loginID是用户名,则您需要在mySQL查询中用引号将字符串引起来-如果loginID是用户名。如果它是整数,则可以。
有更强大的方法可以做到这一点,但简单地是:
$profile = mysql_real_escape_string($_GET['profile']);
$sqlStr = "SELECT loginid, submissionid, title, url, datesubmitted, displayurl
FROM submission
WHERE loginid = '$profile'
ORDER BY datesubmitted DESC";
$result = mysql_query($sqlStr);
if($result) {
// Handle output
}
else {
echo 'query failed';
// don't leave this here in production!
echo mysql_error();
}