2012-02-22 93 views
0

我试图创建动态象下面这样使用PHP创建阵列动态

$data = array(
    array("date" => "1/2/2012", "sentstatus" => "0", "mobile" => "14578998"), 
     array("date" => "21/2/2012", "sentstatus" => "1", "mobile" => "14668998"), 
     array("date" => "1/5/2012", "sentstatus" => "1", "mobile" => "14598998"), 
     array("date" => "1/6/2012", "sentstatus" => "0", "mobile" => "14578748"), 
); 

下面的数组是插入SQL Server数据到数组我的PHP代码,但问题是,它的阵列中只形成数据库表的最后结果集行。我没有得到这个想法插入所有数据库表行到数组如上图所示:

$sql = "SELECT [start_date_time],[sent_status],[mobile_number] ,[play_file] 
     FROM [slice].[dbo].[tbl_message_detail] "; 
$res = odbc_exec($con,$sql) or die(odbc_error()); 
$rows = odbc_num_rows($res); 

while($row = odbc_fetch_array($res)) 
    {  
$data = array(
     array("Date_Time" => $row['start_date_time'], "Send_Status" => $row['sent_status'], "Mobile_Number" => $row['mobile_number'], "play_file" => $row['play_file']) 
    ); 
    } 
+0

改变'$ data'到'$数据[]' – diEcho 2012-02-22 06:22:03

回答

1

由于你创建与每个迭代一个新的数组只得到了最后一排。在while循环之外声明$data

1

试试这个代码:

while($row = odbc_fetch_array($res)) 
{  
    $data[] = array("Date_Time" => $row['start_date_time'], 
        "Send_Status" => $row['sent_status'], 
        "Mobile_Number" => $row['mobile_number'], 
        "play_file" => $row['play_file']); 
} 
+0

感谢很快回复。感谢您的简单解决方案..它解决了我的问题 – 2012-02-22 06:19:20

1

你在每一轮循环的覆盖$ data变量。这:

$data = array(); 
while($row = odbc_fetch_array($res)) 
{  
$data[] = array("Date_Time" => $row['start_date_time'], 
       "Send_Status" => $row['sent_status'], 
       "Mobile_Number" => $row['mobile_number'], 
       "play_file" => $row['play_file'] 
      ); 
} 

应该工作,因为你需要