无法从mysql多维数组中获取键值

iugsix8n  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(272)

我试图从多维数组中获取键值,数组快照在代码后面给出。
下面是我的php代码-

$selectTicket =  "select ticketID from ticketusermapping where userID=$userID and distanceofticket <=$miles;";
$rsTicket = mysqli_query($link,$selectTicket);
$numOfTicket = mysqli_num_rows($rsTicket);  
if($numOfTicket > 0){
    $allRowData = array();  
while($row = mysqli_fetch_assoc($rsTicket)){
    $allRowData[] = $row;
}
 $key = 'array(1)[ticketID]';
    $QueryStr = "SELECT * FROM ticket WHERE ticketID IN (".implode(',', array_keys($key)).")";

阵列快照-

我需要这个数组的tickedid值。第一个是49。请帮忙。

dojqjjoe

dojqjjoe1#

更改代码如下

$selectTicket = "select ticketID from ticketusermapping where userID=$userID and distanceofticket <=$miles;";
    $rsTicket = mysqli_query($link, $selectTicket);
    $numOfTicket = mysqli_num_rows($rsTicket);
    if ($numOfTicket > 0) {
        $allRowData = array();
        while ($row = mysqli_fetch_assoc($rsTicket)) {
            $allRowData[] = $row['ticketID'];
        }
        $QueryStr = "SELECT * FROM ticket WHERE ticketID IN (" . implode(',', $allRowData) . ")";
zmeyuzjn

zmeyuzjn2#

$ids = array_column( $allRowData, 'ticketID'); //this will take all ids as new array
 $QueryStr = "SELECT * FROM ticket WHERE ticketID IN (".implode(',', $ids).")";
yqyhoc1h

yqyhoc1h3#

您应该使用 JOIN 为此:

$query = "
  SELECT t.* 
  FROM ticket t 
  JOIN ticketusermapping tum 
    ON t.ticketID = tum.ticketID
   AND tum.userID = '$userID'
   AND tum.distanceofticket <= '$miles'
";

$stmt = mysqli_query($link, $query);

$numOfTickets = mysqli_num_rows($stmt);

while($row = mysqli_fetch_assoc($stmt)){
    var_dump($row); // here will be the ticket data
}

相关问题