簡體   English   中英

php如何在不使用foreach的情況下分別回顯數組數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM