2017-09-08 15 views
0

我有以下選擇,並同時填寫一個變量:如何保持陣列內容收盤後而

$stmt = $dbh->query('SELECT * FROM agendamentos'); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
print_r ($row); 
} 

正如你所看到的一切運作良好,則顯示的print_r所有的過濾條件的數據。

但是當我嘗試了一段時間後,打印陣列它是空的,沒有數據,是這樣的:

$stmt = $dbh->query('SELECT * FROM agendamentos'); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
} 
print_r ($row); 

我有點新的PHP,所以我想我失去了一些東西有關數組。

+0

在while循環中添加print_r($ row) – Priyank

+0

你想要什麼,那是主要功能! – rahulsm

+1

如果'$ row'只有*空*,你認爲while循環會結束嗎? –

回答

2

你只能在while循環中使用數組$ row,但要把它拿出來...... 會建議你在循環之前創建一個空數組,並將行的值插入它並且可以獲取它通過訪問數組來訪問循環外部。做這樣的事

$stmt = $dbh->query('SELECT * FROM agendamentos'); 
$row_result = array(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    array_push($row_result,$row); 
} 
echo "<pre>"; 
var_dump($row_result); 
echo "</pre>"; 
die; 
+0

你走了!在這段時間之外獲得了數組數據,但是當我嘗試使用這個echo來處理數據時,我仍然有「Undefined index:hora」$ row_result ['hora']; –

+0

$ row_result以數組的數組形式出現。針對你想要仔細選擇的內容。分析你從var_dump得到的數組以知道你正在提取什麼。你也可以在var_dumping之前做array_value($ row_result)。這將有助於更好地安排陣列 – UniQue

+0

我明白了,但是如何獲得'hora'的價值?轉儲是這樣的。 0 => array(size = 4) 'id'=> string'1'(length = 1) 'hora'=> string '08:00:00.0000'(length = 13) 'paciente'=>字符串'ADRIANO'(長度= 7) 'observacao'=>字符串'Agendado para 16:50'(length = 19) –

1

這是怎樣一個循環的工作,如果你想擁有的數據的循環結束後只是將它保存在一個變量

$stmt = $dbh->query('SELECT * FROM agendamentos'); 
$result=array(); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
$result[]=$row; 
} 
print_r ($result); 

音符。輸出將是數組的數組。