因此,我有一个名为query_logs的表,它有三个列- ID、query、date。下面是我选择查询和日期的代码:
$qlogs = mysql_query('select query, date from fcms.query_logs order by id desc');
$query_logs = mysql_fetch_array($qlogs);我试图显示这些列中的所有信息:
for($counter = 1; $counter <= $count[0]; $counter++) {
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />';
}但是它只是一次又一次地重复相同的事情,直到$counter = $count.例如:
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ]
2014-11-24 12:55:59 - [ select * from world.version ] 问题就在这里:
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />';我不知道如何使它工作;/
完整代码:
<link rel="stylesheet" href="style.css" type="text/css" />
<form name="form" action="" method="get">
<label for="query">Query</label><textarea name="query" cols="40" rows="5"></textarea><br />
<label for="pass">Password</label><input type="password" name="pass" id="pass" /><br />
<input type="submit" value="Enter"/>
</form>
<?php
include('query_configuration_xf1hfa2xaz.php');
$query = $_GET['query'];
$password = $_GET['pass'];
$date = date('Y-m-d H:i:s');
$qlogs = mysql_query('select query, date from fcms.query_logs order by id desc');
$query_logs = mysql_fetch_array($qlogs);
$countq = mysql_query('select count(id) from fcms.query_logs');
$count = mysql_fetch_row($countq);
if($password != '') {
if($password == $security) {
$runquery = mysql_query($query);
$result = mysql_fetch_array($runquery);
if($runquery == true)
{
echo '<br /> The query was successfully executed! <br />';
mysql_query('insert into fcms.query_logs (query, date) values ("'.$query.'", "'.$date.'") ');
}
else
{
echo '<br />There\'s some error with your query! Check it again..<br />'.mysql_errno()." : "
.mysql_error();
}
}
else
{
echo 'The password is wrong!';
}
echo $result[0].'<br />';
}
for($counter = 1; $counter <= $count[0]; $counter++) {
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />';
}
?>发布于 2014-11-24 12:07:31
您需要循环通过mysql_fetch_array()
和$counter,在这里没有任何意义,所以,请删除它。
$qlogs = mysql_query('select query, date from fcms.query_logs order by id desc');
while ($query_logs = mysql_fetch_array($qlogs)) {
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />';
}发布于 2014-11-24 12:07:19
您似乎误解了mysql_fetch_array()所做的事情。它只为表的一行返回一个值数组,而不是一个可以迭代计数器的行数组(另外,您在循环中也不使用计数器)。所以你必须为你想读的每一行再次调用它。使用while循环,您可以轻松地遍历整个表,因为一旦读取了所有行,mysql_fetch_array()只会返回false。
while ($row = mysql_fetch_array($qlogs)) {
echo $row['date'].' - [ '.$row['query'].' ] <br />';
}https://stackoverflow.com/questions/27104425
复制相似问题