[英]php How to echo array data separately without using foreach
我創建了以下函數來返回成員數據。 但是,當我嘗試返回數據時出現錯誤。 也許,我的方法是錯誤的。 考慮到以下細節,正確的方法應該是什么?
function memberData(){
global $pdo;
$stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
$stmt-> bindValue(':mem', userId());
$stmt-> execute();
while($f = $stmt->fetch()) {
$return[] = $f;
}
return $return;
}
$memData = memberData();
執行print_r($memData)
返回數據數組如下:
Array
(
[0] => Array
(
[mem_id] => 1
[0] => 1
[mem_name] => Shubham Jha
[1] => Shubham Jha
[mem_email] => shubhamjha1000@gmail.com
[2] => shubhamjha1000@gmail.com
[mem_phone_ext] => +91
[3] => +91
[mem_phone] => 9876543210
[4] => 9876543210
[mem_password] => $2y$10$x5LfvrM8VVH/Rzx9NlCW/uktETYufS8yH4VPN/mcwvpmlBJcbarDe
[5] => $2y$10$x5LfvrM8VVH/Rzx9NlCW/uktETYufS8yH4VPN/mcwvpmlBJcbarDe
[mem_phone_verified] => yes
[6] => yes
[mem_email_verified] => no
[7] => no
[mem_date] => 2020-11-16 08:33:22
[8] => 2020-11-16 08:33:22
)
)
如何分別回顯數據? 我嘗試使用echo $memData['mem_id'];
但返回了一個錯誤Notice: Undefined index: mem_id in E:\\xampp\\htdocs\\market\\includes\\functions.php on line 157
您正在從您的函數返回一個數組(在我看來是$memData
的),但這將使$memData
成為一個數組,因此請使用
echo $memdate[0]['mem_id'];
或者,當您在其鍵上獲取一行時,因此只會返回一個,您可以這樣做
function memberData(){
global $pdo;
$stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
$stmt-> bindValue(':mem', userId());
$stmt-> execute();
$f = $stmt->fetch();
return $f;
}
$memData = memberData();
echo $memdata['mem_name']; // for example
並且最好將$pdo
連接句柄注入函數而不是使用global
像
function memberData($pdo){
$stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
$stmt-> bindValue(':mem', userId());
$stmt-> execute();
$f = $stmt->fetch();
return $f;
}
$memData = memberData($pdo);
echo $memdata['mem_name']; // for example
因為你有一個數組,一個數組是另一個數組或對象的集合,所以你需要做echo $memData[0]['mem_id']
作為你的代碼示例。
我強烈建議你學習原始編程和編程中對象的基礎(這與PHP編程無關,而是通用編程)。
並且請閱讀文檔,如果您每天花 1 小時閱讀文檔對您有好處,通過簡單的搜索,您可以找到任何您想學習的內容。
至於發現你的問題,如果你曾經在官方的 php 文檔中閱讀過這篇文章,你將來會避免這種錯誤和問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.