Php MySQL查询未获取正确的结果

Php MySQL查询未获取正确的结果,php,mysql,Php,Mysql,我有一个网络论坛,只有一些选定的用户可以访问它,也就是说,他们必须有$\u seision['username'] 现在在个人资料页面上-看起来像这样 http://127.0.0.1/mysite/profile.php?username=john 我想显示上载按钮或编辑配置文件按钮, 取决于他们是否上传了图像 我正在检查是否设置了$\u GET,如果没有设置,它将首先重定向到 网页: if(isset($_GET['username'])) { $username = mysql_real

我有一个网络论坛,只有一些选定的用户可以访问它,也就是说,他们必须有
$\u seision['username']

现在在个人资料页面上-看起来像这样

http://127.0.0.1/mysite/profile.php?username=john
我想显示上载按钮或编辑配置文件按钮, 取决于他们是否上传了图像

我正在检查是否设置了$\u GET,如果没有设置,它将首先重定向到 网页:

if(isset($_GET['username'])) {
$username = mysql_real_escape_string($_GET['username']);

$profile = mysql_query(SELECT *
                       FROM forum
                       WHERE username = '$username') or DIE(mysql_error());

                       $row = mysql_fetch_array($profile);

                    echo"
                    Name : $row[name];
                   Country : $row[country];

    if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') {
   echo "Upload Button";
}
else {
      echo"Edit Button";
}
}
上传按钮显示在屏幕上,实际上是一个图像 指定的路径


请告诉我哪里出了问题。

您应该在mysql\u查询参数周围加上双引号。我复制了你的代码,这就是我的解决方案

顺便说一下,你的回声太大了。它应该如下代码所示

echo "Name: ".$row['name'];
echo "Country: ".$row['country'];

if($_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '') {
    echo "Upload Button";
}
else {
    echo"Edit Button";
}
  • mysql\u query(“query HERE”)
    ,否则它将无法工作
  • $row['name']
    $row['country']
    :您需要将名称放在引号之间
  • 回显“文本”
    。您没有关闭引号
  • 空($row['imagepath'])
    。它有一个函数,所以使用它

如果上述更正仍然无效,请尝试回显您需要的所有变量:
$\u GET['username']
$\u POST['username']
$row['imagepath']
。可能PHP无法读取它们。

修复了所有语法错误,您可以从这里开始调试:

if ( isset( $_GET['username'] ) ) {
  $username = mysql_real_escape_string( $_GET['username'] );

  $profile = mysql_query( "SELECT *
    FROM forum
    WHERE username = '$username'" ) or DIE( mysql_error() );

  $row = mysql_fetch_array( $profile );

  echo "Name : " . $row['name'];
  echo "Country : ". $row['country'];

  if ( $_GET['username'] == $_SESSION['username'] && $row['imagepath'] == '' ) {
    echo "Upload Button";
  } 
  else {
    echo"Edit Button";
  }
}

不要在代码中使用
mysql.*
函数。这些功能已不再维护,并将继续使用。相反,您应该使用或。不知道该用哪个?应该有帮助。我喜欢你用大写字母写剧本的方式。除此之外,关于如何回答这个问题的信息实在不多。右后卫阿查:“你哪里出错了?”要使用$\u会话,你需要设置SESSION\u start();你确定
imagepath
是正确的字段名吗?你的引号在echo“name:$row[name];Country:$row[Country];----没有结束引号。你也应该在[]括号内使用单引号。例如,$row['name']。为什么投票被否决?努力清理了代码。非常好的家伙!这实际上不是一个答案。