首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从其中选择两列并显示

从其中选择两列并显示
EN

Stack Overflow用户
提问于 2014-11-24 12:02:32
回答 2查看 58关注 0票数 0

因此,我有一个名为query_logs的表,它有三个列- ID、query、date。下面是我选择查询和日期的代码:

代码语言:javascript
复制
$qlogs = mysql_query('select query, date from fcms.query_logs order by id desc');
$query_logs = mysql_fetch_array($qlogs);

我试图显示这些列中的所有信息:

代码语言:javascript
复制
for($counter = 1; $counter <= $count[0]; $counter++) {
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />'; 
}

但是它只是一次又一次地重复相同的事情,直到$counter = $count.例如:

代码语言:javascript
复制
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 ] 

问题就在这里:

代码语言:javascript
复制
echo $query_logs['date'].' - [ '.$query_logs['query'].' ] <br />';

我不知道如何使它工作;/

完整代码:

代码语言:javascript
复制
<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 />'; 
}
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-24 12:07:31

您需要循环通过mysql_fetch_array()

$counter,在这里没有任何意义,所以,请删除它。

代码语言:javascript
复制
$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 />'; 
}
票数 4
EN

Stack Overflow用户

发布于 2014-11-24 12:07:19

您似乎误解了mysql_fetch_array()所做的事情。它只为表的一行返回一个值数组,而不是一个可以迭代计数器的行数组(另外,您在循环中也不使用计数器)。所以你必须为你想读的每一行再次调用它。使用while循环,您可以轻松地遍历整个表,因为一旦读取了所有行,mysql_fetch_array()只会返回false

代码语言:javascript
复制
while ($row = mysql_fetch_array($qlogs)) {
   echo $row['date'].' - [ '.$row['query'].' ] <br />'; 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27104425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档