在select语句中使用PHP会话变量数组

时间:2016-08-31 16:33:42

标签: php mysql mysqli

我想从我的名为seat_number的表中获取flight_Seat_Status,但我正在使用while循环,因为我有多个用户可以显示他们的航班信息。

首先我开始循环

while($count < $_SESSION['passengers']){

然后我在表格中回显结果

echo "<tr> <td>".$_SESSION['firstname'][$count]."</td>";
echo "<td>".$_SESSION['lastname'][$count]."</td>";
echo "<td>".$_SESSION['from']."</td>";
echo "<td>".$_SESSION['destination'][$count]."</td>";
echo "<td>".$_SESSION['departureseat'][$count]."</td>";//get seat number $count++; }
我试图做的是

  $query = ($conn,"SELECT * from flight_seat_status where seat_id = '$_SESSION[departureseat][$count]'") 

departureseat包含seat_id,我想找到该seat_id的seat_number。

2 个答案:

答案 0 :(得分:1)

正如Variable parsing所述:

  

语法有两种:simple一种,complex一种。

然后,在Simple syntax下:

  

对于数组索引,结束方括号(])标记索引的结尾。

[ deletia ]
     

对于任何更复杂的东西,你应该使用复杂的语法。

然而,在Complex (curly) syntax下:

// Works. When using multi-dimensional arrays, always use braces around arrays
// when inside of strings
echo "This works: {$arr['foo'][3]}";

答案 1 :(得分:1)

阅读Strings上的PHP文档。为了将带有变量索引的数组元素插入到字符串中,您必须使用&#34; complex&#34;用大括号包装它的语法。

$query = ($conn,"SELECT * from flight_seat_status where seat_id = '{$_SESSION['departureseat'][$count]}'") 
顺便说一句,我建议你重构你的会话变量。而不是为firstnamelastnamedepartureseat等每个属性设置单独的数组,而是使其成为关联数组的数组。

$_SESSION['passengers'][$passengerid] = array(
    'passengerid' => $passengerid,
    'firstname' => "John",
    'lastname' => "Smith",
    'destination' => "BOS",
    ...
);

这样您就可以使用foreach ($_SESSION['passengers'] AS $p)