PHP if在POST中只加载第一个if


PHP if in POST load only the first if

我有这个代码:

    if(isset($_POST['remove'])){
                      $con = mysqli_connect(".","","","");
                $q = mysqli_query($con,"UPDATE members SET picture = '' WHERE username = '".$_SESSION['username']."'");
        header( "refresh:2;url=settings.php" );
        echo "<div class='notemarg'>Profile Picture has been removed. Refreshing page within 3 seconds...</div>";
}

它正在工作,但我希望它能做一些类似的事情

    if(isset($_POST['remove'])){
                      $con = mysqli_connect("","","","");
        while($row = mysqli_fetch_assoc($q)){
                                    if($row['picture'] == ""){
                                echo "<div class='notemarg'> No pictures to delete</div>";
        } else {
                $q = mysqli_query($con,"UPDATE members SET picture = '' WHERE username = '".$_SESSION['username']."'");
        header( "refresh:2;url=settings.php" );
        echo "<div class='notemarg'>Profile Picture has been removed. Refreshing page within 3 seconds...</div>";
        }
        }
}

这意味着只有在有任何图片的情况下,数据库中的图片才会被删除。。如果没有,则它将显示消息"无图片可删除"。。。但它不起作用。。它仍然显示错误消息,即使数据库中没有空白行,也没有图片,因此它也没有删除行中的信息。。。问题出在哪里?BTW:第一个代码运行良好。。。即使数据库中什么都没有,它也能工作,所以显示"个人资料图片已被删除"是没有意义的。。。

试试这个:

  $con = mysqli_connect("","","","");
 if(isset($_POST['remove'])){
   $q = mysqli_query($con, "SELECT picutre FROM members where username = '". $_SESSION['username']. "'");          
   $row = mysqli_fetch_assoc($q);
   if( empty($row['picture'])){
      echo "<div class='notemarg'> No pictures to delete</div>";
   } 
   else {
     $q = mysqli_query($con,"UPDATE members SET picture = '' WHERE username = '".$_SESSION['username']."'");
     header( "refresh:2;url=settings.php" );
     echo "<div class='notemarg'>Profile Picture has been removed. Refreshing page within 3 seconds...</div>";
    }
 }

您需要mysqli_query语句:

$con = mysqli_connect("","","","");
if(isset($_POST['remove'])){
    $q = mysqli_query($con,"SELECT IFNULL(picture,'') AS picture
                        FROM members 
                        WHERE username = '".$_SESSION['username']."'");
    $row = mysqli_fetch_assoc($q);
    if( empty($row['picture'])){
      echo "<div class='notemarg'> No pictures to delete</div>";
    } 
    else {
      $q = mysqli_query($con,"UPDATE members SET picture = '' WHERE username = '".$_SESSION['username']."'");
      header( "refresh:2;url=settings.php" );
      echo "<div class='notemarg'>Profile Picture has been removed. Refreshing page within 3 seconds...</div>";
    }
 }