检索mysql查询

时间:2009-12-30 15:05:06

标签: php mysql

我编写了一个mysql查询,并使用mysql_fetch_assoc()将结果作为关联数组提取。查询返回两个字段的列表。我使用结果数组循环遍历此字段并提取value.how do我显示两个字段,因为做一个普通的回声对我不起作用?我写的代码是

提前致谢。

 $query = "SELECT x,y FROM table";
 $result = mysql_query( $query ,  $resourcelink);
 while( $s= mysql_fetch_assoc( $result ) )
 {
extract( $s );
    echo $x . " - " . $y . "<br />";
 }

4 个答案:

答案 0 :(得分:1)

我建议不要使用提取物。它使代码很难遵循。

我只是这样做:

$query = "SELECT x,y FROM table";
$result = mysql_query( $query ,  $resourcelink);
while( $s= mysql_fetch_assoc( $result ) ) {
    echo $s['x'], ' - ', $s['y'], '<br/>';
}

答案 1 :(得分:0)

mysql_fetch_assoc返回键值到映射的数组。由于您没有从数据库中检索onetwo,因此不存在$ 1和$ 2(分别为$s['one']$s['two'])。因此,使用您选择作为键的列来执行此类操作。

 $query = "SELECT x,y FROM table";
 $result = mysql_query( $query ,  $resourcelink);
 while( $s= mysql_fetch_assoc( $result ) )
 {
    echo $s['x'] . " - " . $s['y'] . "<br />";
 }

或者如果你想继续使用提取物(我不推荐它,它可能导致一些难以追踪的错误)

 $query = "SELECT x,y FROM table";
 $result = mysql_query( $query ,  $resourcelink);
 while( $s= mysql_fetch_assoc( $result ) )
 {
    extract($s);
    echo $x . " - " . $y . "<br />";
 }

答案 2 :(得分:0)

extract是一种不好的做法,而且你的列可能被称为x和y,而不是一个和两个。

我建议使用以下内容:

echo htmlspecialchars($s['x']), ' - ', htmlspecialchars($s['y']);

答案 3 :(得分:0)

根据您的SELECT语句,mysql_fetch_assoc()返回一个类似array('x'=>something, 'y'=>something)的数组,extract()将“翻译”为$ x ='something'和$ y ='something',而不是$ 1和$ 2

尝试

error_reporting(E_ALL);
$query = "SELECT x,y FROM table";
$result = mysql_query( $query ,  $resourcelink) or die(mysql_error());
echo 'there are ', mysql_num_rows($result), " records in the result set\n";
while( false!==($row=mysql_fetch_array($result, MYSQL_ASSOC)) )  {
  echo $row['x'], ' ', $row['y'], "\n";
}