【问题标题】:Echo Result of MySQL SELECT Query in PHPPHP中MySQL SELECT查询的回显结果
【发布时间】:2015-02-16 14:07:11
【问题描述】:

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

$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 是预选的选项。

【问题讨论】:

  • 所以,您查询了一个字段SELECT cname FROM,但试图回显另一个字段$r['charname']?尝试在查询中添加另一个,或根据请求回显相同的cname
  • 对不起@kim-alexander,但由于我的输入错误,这是一个红鲱鱼。我已经编辑了代码 sn-p 以删除我的错误并添加一些上下文。
  • mysql_* 函数现已弃用。考虑使用 mysqli 或 PDO。 php.net/manual/en/function.mysql-connect.php

标签: php mysql select inner-join


【解决方案1】:

来自数据库的结果是二维的:

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

所以如果你的查询返回'cname'

你应该:

echo $r[0]['cname']

【讨论】:

  • 谢谢@zafirov。我尝试将 [0] 添加到 $r 并且它仍然返回一个空白。我不知道返回数组的二维性质,这个花絮将帮助我进一步编码。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-19
      • 2014-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多