代码之家  ›  专栏  ›  技术社区  ›  Mankind1023

mysql\u fetch\u assoc只获取一条记录

  •  4
  • Mankind1023  · 技术社区  · 15 年前

    我有一个带有查询结果的数组:

    .....some code.....
    $result = mysql_query("SELECT * FROM vttest");
    $row = mysql_fetch_assoc($result);
    print_r($row);
    

    但它只打印一条记录,我不能将$row放入循环中,因为我稍后将对该变量进行排序。

    Array
    (
        [id] => 3
        [rep] => Mike
        [name] => Joe
        [department] => Business
        [location] => Room 1
        [email] => xxxx@hotmail.com
        [phone] => 519-123-4567
        [type] => Visit
        [drink] => Coffee
        [notes] => Some notes
        [lastVisited] => 2010-08-27
        [nextVisit] => 2010-08-27
    )
    

    4 回复  |  直到 15 年前
        1
  •  14
  •   Sarfraz    15 年前

    实际上,您正在获取一条记录,因为您需要使用循环来获取所有记录:

    $my_arary = array();
    while($row = mysql_fetch_assoc($result)){
      $my_arary[] = $row;
      print_r($row);
    }
    

    如你所说,以后你可以使用 $my_arary 做你想做的事。

        2
  •  2
  •   shamittomar    15 年前

    你需要把它放在一个循环里。然后,如果以后需要处理该变量,请使用 mysql_data_Seek 要重置内部结果指针:

     mysql_data_seek($result, 0);
     // your later code.
    
        3
  •  1
  •   Mike    15 年前
    $result = mysql_query("SELECT * FROM vttest");
    
    $data = array();
    while($row = mysql_fetch_assoc($result)){
        array_push($data, $row);
    }
    
        4
  •  1
  •   Arturs    11 年前

    您几乎已经拥有了它,您需要使用一个循环来遍历结果以获得每一行,并在这样做的同时将每一行分配给一个表。

    $result = mysql_query("SELECT * FROM vttest");
    while($row = mysql_fetch_assoc($result)){
        $rows[] = $row;
    }
    

    foreach($rows as $index => $value){
        print_r($value);
    }
    

    foreach将打印数组中的每一行,一次打印一行,允许您根据需要缩短或使用该数据。