我有一个页面,我希望根据另一个表中的值显示一个表中的单个值:
$username = 'Joe';
$query = 'SELECT * FROM chars WHERE uname = "$username"';
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_assoc($result);
$query = 'SELECT cname FROM chars INNER JOIN usrs
ON chars.cid = usrs.clastused WHERE usrs.uname = "$username"';
$q = mysql_query($query) or die(mysql_error());
$r = mysql_fetch_assoc($q);
echo '<p>q = "'.$q.'" and r = "'.$r['cname'].'"</p>'; //for debugging
foreach ($row['cname' as $opt) {
$output .= '<option value=\"'.$opt.'\"';
if ($opt=$r) {$output .= ' selected';}
$output .= '>'.$opt.'</option>';
}
PHPMyAdmin提供我期望的响应 CNAME Joe ,$q
提供资源ID#5 ,但$r
为空。
我如何回应结果?
我想在一天结束时有一个下拉列表,其中 clastused 是预先选择的选项。
答案 0 :(得分:0)
dataBase的结果是二维的:
result[0]['column1']
result[0]['column2']
result[0]['column3']
result[1]['column1']
result[1]['column2']
result[1]['column3']
因此,如果您的查询返回&#39; cname&#39;
你应该:echo $r[0]['cname']
答案 1 :(得分:0)
我通过直接使用数组变量修复了这个问题:
foreach ($r as $opt) {
$output .= '<option value=\"'.$opt.'\"';
if ($opt=$cname) {$output .= ' selected';}
$output .= '>'.$opt.'</option>';
}
答案 2 :(得分:0)
您必须尝试使用print_r而不是echo作为其数组。 试试print_r($ r);