2012-06-08 32 views
2

我需要从一个MySQL数据库如何从mysql数据库回显ith行和第n列?

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

  • 问题1呼应了第4行第3列>什么是$结果包含哪些内容?在MYSQL中看到的表格形式?

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

  • 问题3>我该如何移动到第4行? 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

对于新代码,不要再使用古代的mysql_ *函数,它们将被弃用:http://www.webmaster-source.com/2011/07/25/php-to-deprecate-mysql-extension-in -favor-of-mysqli-and-pdo/ – markus

回答

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语句将评估为假,当它用完行的,你得到的所有行。由于您正在进行查询,因此您应该知道如何处理每行中的相关数据。

关于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()

+0

这有帮助,但假设我从php获取2个url的列表。我如何在屏幕上提醒他们? ' $ query ='SELECT pic_id FROM picture LIMIT 5'; $ result = mysql_query($ query); while($ rec = mysql_fetch_array($ result,MYSQL_NUM)){ $ url。= $ rec [0]; } } echo $ url;' – Yahoo

+0

以上问题编号为 – Yahoo

+0

'echo'会输出字符串,'print_r($ var)'会输出'$ var',而不管它是什么类型的变量。 –