PHP MySQL数据输出
我试图从MySQL数据库中读取特定日期的数据。 我想让PHP在我输入的特定日期内从数据库获取所有数据,但脚本似乎只获取了第一行数据,而忽略了其余的数据 你能帮我用代码来实现这一点吗PHP MySQL数据输出,php,mysql,Php,Mysql,我试图从MySQL数据库中读取特定日期的数据。 我想让PHP在我输入的特定日期内从数据库获取所有数据,但脚本似乎只获取了第一行数据,而忽略了其余的数据 你能帮我用代码来实现这一点吗 <?php if(isset($_REQUEST['query'])) { $searchQuery = $_POST['data-search']; //connceting to db $con = mysql_connect($_SERVE
<?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";
}
?>
您应该将日期列视为日期,例如:
$query = "SELECT * FROM websites WHERE Date between '$startDate' and '$endDate'";
您应该使用参数化查询,而不是使用字符串连接,以避免sql注入。我相信Mysql文档中有一些例子。在脚本中,每次通过循环时,都会替换
$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>";
while($row=mysql\u fetch\u array($result))
{
$searchOutput=“网站标题网站URL关于网站内容
“$row['Title'..”.$row['URL'..”.$row['Content'.]”;
}
至:
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>";
$searchOutput=“网站标题网站URL关于网站内容”;
while($row=mysql\u fetch\u数组($result))
{
$searchOutput.=''.$row['Title'].''.$row['URL'].''.$row['Content'].'';
}
$searchOutput.=“”;
你应该考虑重构你的代码,以便所有模板/格式化的东西与数据库逻辑的东西分开。从长远来看,它将更易于阅读和维护。您意识到,您检索到的每一行都会覆盖$searchOutput字符串。还请努力学习表格、行和单元格的html标记。。。。标记本身是完全不一致的,并且每行都要启动一个新的HTML文档/正文,这不是真正有效的HTML,可能会在不同的浏览器之间呈现出虚假。