2

我需要从 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 > 我怎样才能移动到第 4 行?回声 $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]);
4

1 回答 1

3

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

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

$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()在使用用户输入进行查询时几乎总是需要的。

于 2012-06-08T06:03:35.513 回答