我需要从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]);
答案 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()
。