PHP MySQL数据输出
问题描述:
我试图从MySQL数据库中读取特定日期的数据。 我想要的是让PHP在我输入的特定日期内从数据库中获取所有数据,但似乎该脚本仅获得了第一行数据,而其余部分则被忽略。PHP MySQL数据输出
能否请你帮我用代码来实现这一目标。
<?php
if(isset($_REQUEST['query']))
{
$searchQuery = $_POST['data-search'];
//connceting to db
$con = mysql_connect($_SERVER['SERVER_NAME'],'root','');
if(!$con)
{
die("Error connecting: ".mysql_error());
exit;
}
//selecting db
$dbSelect = mysql_select_db("directory",$con);
$query = "SELECT * FROM websites WHERE Date LIKE '$searchQuery'";
//executing query
$result = mysql_query($query,$con);
if(!$result)
{
die("Could not connect: ".mysql_error());
}
while($row = mysql_fetch_array($result))
{
$searchOutput = "<html><body><table border=1><tr><td>Website Title</td><td>Website URL</td><td>About Website Content</td></tr>
<tr><td>".$row['Title']."</td><td>".$row['URL']."</td><td>".$row['Content']."</td></tr></table>";
}
$searchSuccess = "<p>Your Search was successful</p</body></html>";
mysql_close($con);
echo $searchOutput;
echo $searchSuccess;
}
else{
echo "Invalid";
}
?>
答
在脚本中替换每次经过循环时间$searchOutput
。
变化:
while($row = mysql_fetch_array($result))
{
$searchOutput = "<html><body><table border=1><tr><td>Website Title</td><td>Website URL</td><td>About Website Content</td></tr>
<tr><td>".$row['Title']."</td><td>".$row['URL']."</td><td>".$row['Content']."</td></tr></table>";
}
到:
$searchOutput = "<html><body><table border=1><tr><td>Website Title</td><td>Website URL</td><td>About Website Content</td></tr>";
while($row = mysql_fetch_array($result))
{
$searchOutput .= "<tr><td>".$row['Title']."</td><td>".$row['URL']."</td><td>".$row['Content']."</td></tr>";
}
$searchOutput .= "</table>";
BTW你应该考虑重构你的代码,这样,所有的模板/格式化的东西是从数据库逻辑的东西分开。从长远来看,它会使阅读和维护变得更加容易。
+0
谢谢你这项工作。 – Josiah 2012-02-10 15:41:36
答
你应该把日期列日期,例如:
$query = "SELECT * FROM websites WHERE Date between '$startDate' and '$endDate'";
您应该使用,而不是使用字符串连接,以避免SQL注入Paramterized查询。我确信Mysql文档有一些例子。
你意识到你的$ searchOutput字符串被改写为你检索到的每一行。还请努力学习表格,行和单元格的HTML标记....标记本身是完全不一致的 – 2012-02-08 19:32:10
而且您正在为每行开始一个新的HTML文档/主体,这不是真正有效的HTML并可能转向从浏览器到浏览器的虚假显示。 – hakre 2012-02-08 19:42:36
我该如何解决这个问题。 – Josiah 2012-02-08 22:31:09