如何从mysql数据库中回显第i行和第n列?

时间:2012-06-08 06:01:18

标签: php javascript mysql ajax json

我需要从mysql数据库中回显第4行第3列

    $query = 'SELECT * FROM picture LIMIT 10';
    $result = mysql_query($query);
    $row = mysql_fetch_array($result,MYSQL_NUM );
  

  • 问题1> $ result包含什么?表格形式如MYSQL中所示?

  • 问题2> $ row包含什么?只是第一排?

  • 问题3>我怎么能搬到第四排? echo $ row [4]没有 工作!! ?

  • 问题4>我怎样才能进入第4行第3列?

    echo $row[4][3]不起作用!!

  • 问题5 - 如果我必须发送2行返回客户端( 假设ajax从php请求它

会不会是php

 $query = 'SELECT * FROM picture LIMIT 5';
$result = mysql_query($query);
$rec = mysql_fetch_array($result,MYSQL_NUM );

print_r (json_encode($result[0]));

在html方面

$.ajax({
      url: "viewnew.php",
      data: {
         current_image: imId,
         direction    : dir
      },
      success: function(ret){
          console.log(ret);
          var arr = eval(ret);
          alert("first: " + arr[0] + ", second: " + arr[1]);

1 个答案:

答案 0 :(得分:3)

您的答案是echo mysql_result($result, 3, 3)。您也可以使用echo mysql_result($result, 3, 'rowname')。请注意,由于它是零索引,因此第四行是#3,因为第一行是#0。

$result包含MySQL查询结果 Object ,您需要使用内置函数来访问它。

$row确实只包含第一行的数组。内部指针增加了,所以如果你运行$row代码行两次,$row现在会有第二行。一旦用完了行,那行代码将评估为false(这在下面有用)。

php.net提供了这段代码:

while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    printf("ID: %s  Name: %s", $row[0], $row[1]);  
}

由于while语句在行用完时将评估为false,因此您将获得所有行。由于您正在进行查询,因此您应该知道如何处理每行中的相关数据。

关于AJAX,在服务器端,您需要将行分配给数组变量(如上所述),然后输出您想要的那些。既然您知道如何输出它们,那么由您决定如何在客户端处理它们。

htmlspecialchars()htmlentities()会使输出数据安全。

示例方法如下:

$query = mysql_query(...);
$rows = array();
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $rows[] = $row; //append row to rows array
}
//Then output the relevant rows

php.net有关于如何在PHP中使用MySQL函数的大量文档。

另外,不要忘记安全!使用用户输入进行查询时,几乎总是需要mysql_real_escape_string()