簡體   English   中英

提取具有相同ID的多行mysql php

[英]Extract multiple rows with same id mysql php

嗨,我有下表:

id  request_id  ein intervention_date   time_slot
10  1   600545383   18/05/2015 00:00    AM
11  3   802877145   01/06/2015 00:00    AM
12  3   802310154   02/06/2015 00:00    PM
13  3   801777170   03/06/2015 00:00    AM

我有以下查詢:

function get_coach_request_assignment_on_request_id($request_id){
        $connection = get_db();
        $query = 'SELECT * FROM coach_request_assignment WHERE request_id='.$request_id;
        return $connection->query($query);
    }

當我調用此函數時,它僅返回第一行,其中request_id=3如何提取查詢返回的所有值?

這是我嘗試過的:

$coach_request_assignment_data = get_coach_request_assignment_on_request_id($request_id);
$coach_request_assignment_data = $coach_request_assignment_data->fetch_assoc();

這就是var_dump($coach_request_assignment_data)樣子:

array (size=5)
  'id' => string '11' (length=2)
  'request_id' => string '3' (length=1)
  'coach_uin' => string '802877145' (length=9)
  'date_intervention' => string '2015-06-01 00:00:00' (length=19)
  'time_slot' => string 'AM' (length=2)

謝謝這里...

如果這是MySQLi API,則需要多次調用fetch_assoc()才能獲得這些多行。 您僅調用->fetch_assoc()一次:

$results = get_coach_request_assignment_on_request_id($request_id);
$coach_data = array();
while($row = $results->fetch_assoc()) {
    $coach_data[] = $row; // push row
}
// print_r($coach_data);

我猜您正在使用mysqli擴展名?

嘗試一下:

$coach_request_assignment_data->fetch_all(MYSQLI_ASSOC);

這將立即獲取整個結果集,而不需要自己遍歷它。 MYSQLI_ASSOC告訴它在包含列名稱的關聯數組中返回它。 默認值為MYSQLI_NUM,它僅返回沒有列名的數字索引數組。

您在使用PDO :: query()嗎? 如果是,則query()返回一個PDOStatement,您可以對其進行循環,例如:

$results = get_coach_request_assignment_on_request_id($request_id);
foreach ($results as $result) {
   //do something with $result
}

Doc: http : //php.net/manual/fr/pdo.query.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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