如果if返回false,如何退出if语句而不影响php的其余部分

时间:2018-05-06 14:53:39

标签: php mysql sql

//这已经让我疯狂lol ..代码在下面执行。我试图退出脚本,如果一个if语句为真,并继续,如果它是假的

<?php

require('includes/config.php');

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$selectQuery = "SELECT username, email, tokens, tokenstatus, tokensinc, tokenstatus1, tokenswith, tokenstatus2 FROM members WHERE username = '".($_SESSION['username']) ."'";

$updateQuery = "UPDATE members SET tokens=tokens - 10, tokenstatus='(Pending Tokens)' ,tokenswith=tokenswith + 10, tokenstatus1='(Pending Tokens)' WHERE username = '".($_SESSION['username']) ."'";

// Create connection
$db = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$db) {
die("Connection failed: " . mysqli_connect_error());
}

//if not logged in redirect to login page
if(!$user->is_logged_in()) { header('Location: login.php'); exit(); }

//define page title
$title = 'Withdraw ~ Pixel Jag';

//include header template
require('layout/header.php');
?>
<div class="container">
<div class="panel panel-default">
<?php


$result = mysqli_query($db, $selectQuery);

if (mysqli_num_rows($result) > 0) {
// output data of each row
echo "<ul class='list-group'>";
while($row = mysqli_fetch_assoc($result)) {

//下面的if语句是要执行的代码,如果这返回true我想让它退出脚本,如果它是false我想让它继续更新//

  if ($row['tokens'] < 10) {
        echo "<li class='list-group-item list-group-item-danger'>You do not have enough tokens!</li>";
    }
}
echo "</ul>";

}

//如果上面的内容返回false //

,请参阅下面我希望执行的代码
if (mysqli_query($db, $updateQuery)) {
echo "<ul class='list-group'><li class='list-group-item list-group-item-success'><h4>Record updated successfully!</h4></li></ul>";
} else {
echo "Error updating record: " . mysqli_error($db);
}

mysqli_close($db);
?>

<div class="panel-footer">
<a href="index.php"><h4>Back To Dashboard..</h4></a>
</div>
</div>
</div>
<?php
//include header template
require('layout/footer.php');
?>

2 个答案:

答案 0 :(得分:0)

请输入一个标志$ isValid,默认值为true

$isValid = true;

while(mysqli_num_rows($result) > 0 || $isValid) {
     if ($row['tokens'] < 10) {
       echo "<li class='list-group-item list-group-item-danger'>You do not have  enough tokens!</li>";
         $isValid = false;
     }
}

如果标志为真,则执行更新

答案 1 :(得分:0)

在我看来,最好的方法是,如果你在一个函数或方法中,使用return;言。

function some(){
  if(true){
  return;
  }
  else{
  //do other stuff

  if(true){
  return;
  }

}

}

但是在php中还有很多方法可以中断执行。你确实在使用其中一些。

die;
exit;
throw new Exception('some error');//we need an exception handler in this case

然后:

if ($row['tokens'] < 10) {
        echo "<li class='list-group-item list-group-item-danger'>You do not have enough tokens!</li>";
die;// or exit or return if you are within a function o method
    }