php - false 时继续执行代码

标签 php mysql sql loops for-loop

你能帮我解决这个问题吗?我有这个代码:

foreach ($mat_desc as $mat_key => $materials) {
    $mat = explode(' | ', $materials);
    $mat_d = $mat[0];
    $mat_u = $mat[1];
    $m = mat_id_from_mat_desc($mat_d, $mat_u);

    $cur = mysql_result(mysql_query('SELECT `req_id` FROM `requestdetails` JOIN `request` USING(`req_id`) WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.$m.'" AND `req_qty` <> `current_rec_qty` ORDER BY `req_id` DESC'), 0);
    echo $cur;
    if(mysql_num_rows($cur) == 0){
        exit;
    }

    mysql_query ("INSERT INTO `receive` (`proj_id`,`rec_code`) VALUES ('$proj_id','$rec_code')");       

    $rec_id = mysql_insert_id();    

我想要实现的是,当 $cur 没有任何行时,它将退出循环并且不会继续执行其余代码。但如果它确实有任何行,它将继续并执行插入查询。预先感谢您。

最佳答案

我假设您的意思是您不想在 foreach 语句中为该项目执行 INSERT 。如果是这种情况,请将 exit; 更改为 continue;,这将指示 PHP 停止执行循环中当前项目的代码,在循环中前进一个元素并开始再次从顶部开始。

您还应该更改:

$cur = mysql_result(mysql_query('SELECT `req_id` FROM `requestdetails` JOIN `request` USING(`req_id`) WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.$m.'" AND `req_qty` <> `current_rec_qty` ORDER BY `req_id` DESC'), 0);

至:

 $cur = mysql_query('SELECT `req_id` FROM `requestdetails` JOIN `request` USING(`req_id`) WHERE `proj_id` = "'.$proj_id.'" AND `mat_id` = "'.$m.'" AND `req_qty` <> `current_rec_qty` ORDER BY `req_id` DESC');

关于php - false 时继续执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14812783/

相关文章:

php - 在每三个图像 PHP 之后添加一个新行

php - 在网页侧边栏显示类别列表

sql - 如何在 SQL SELECT 中执行 IF...THEN?

mysql - 添加(选择)另外两个列到这个结果集中

sql - 关系代数相当于 SQL "NOT IN"

php - 如何确保 Laravel 5.5 正在运行测试?

php - Laravel 路由不起作用,只有根路由起作用

php - 表达式引擎中的 'username'全局变量可以用来从mysql数据库中选择记录吗?

javascript - 无法使用 Node.JS 将 null 值发送到 MySQL 数据库

使用 HTML 表格的 PHP 循环