MySQL SELECT 查询的回显结果 PHP

Echo Result of MySQL SELECT Query in PHP

我有一个页面,我想根据在另一个 table 中找到的值显示来自一个 table 的单个值:

$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 给出了 Resource id#5$r是空白的。 我如何回应结果? 我最终想要的是有一个下拉列表,其中 clastused 是预选选项。

数据库的结果是二维的:

result[0]['column1']
result[0]['column2']
result[0]['column3']
result[1]['column1']
result[1]['column2']
result[1]['column3']

因此,如果您的查询 returns 'cname'

你应该:

echo $r[0]['cname']

我直接使用数组变量解决了这个问题:

foreach ($r as $opt) {
    $output .= '<option value=\"'.$opt.'\"';
    if ($opt=$cname) {$output .= ' selected';}  
    $output .= '>'.$opt.'</option>';
}

您必须尝试 print_r 而不是 echo 作为数组。 尝试 print_r($r);