$request = 'SELECT * FROM flight WHERE Id = \''.$_SESSION['LFLightRadio'].'\'';
$data = mysql_fetch_array(mysql_query($request, $SQL));
echo '<table class="table">';
foreach($data as $key => $value) {
echo '<th class="head" align="center" height="19">'.$key.'</th>';
}
echo '<tr>';
foreach($data as $key => $value) {
echo '<td class="cell" align="center" height="19">'.$value.'</td>';
}
echo '</tr></table>';
我知道LFlightRadio值已设置,并且是先前从航班数据库返回的行的Id值返回的值。所以在“飞行”中,这个Id肯定存在记录。但是,这仍然给我一个非数组结果,所以当我尝试使用foreach时,它会出错。建议?
答案 0 :(得分:2)
echo '<table class="table">';
之前,添加:
echo '<br>$_SESSION[\'LFLightRadio\']="'.$_SESSION['LFLightRadio'].'"<br>';
确保您确实有一个值可以与查询中的flight.Id进行比较。你这样做的方式是一个巨大的SQL injection攻击等待发生!请参阅此问题:mysql_real_escape_string() for $_SESSION variables necessary?
修改强>
在echo '<table class="table">';
:
echo '<br>$request="'.$request.'"<br>';
在数据库上运行该查询,是否返回了任何行?
答案 1 :(得分:1)
您的意思是使用
mysql_fetch_assoc
而不是mysql_fetch_array?数组会有像0,1,2 ......
这样的键答案 2 :(得分:1)
您的代码中存在错误大写。
$_SESSION['LFLightRadio']
最有可能是$_SESSION['LFlightRadio']
数组键区分大小写。
答案 3 :(得分:0)
$var = $_SESSION['LFlightRadio'];
$request = "SELECT * FROM flight WHERE Id = '$var'";
$data = mysql_fetch_array(mysql_query($request, $SQL));
这个有效!出于某种原因,当我直接连接它时,它实际上并没有将变量添加到字符串中。但是当我这样做的时候,它就被投入了,我得到了预期的结果。