PHP MYSQLI如果一行值= 0,则开始使用另一行

时间:2018-02-17 18:19:00

标签: php mysql mysqli

我的脚本中的Hello如果“当前行= 0”的值转到下一行,我想继续减少例如从第1行到第5行。

我能够像这样做2行:

<?php

$select_row1 = "SELECT row1 FROM mytable";
$row1_result = $mysqli->query($select_row1);


if ($row1_result->num_rows > 1) {

    while($row = $row1_result->fetch_assoc()) {
        $reduce_row1_value  = "UPDATE mytable SET row1  = row1  - 1 WHERE user_uuid = '" . $avatar_key . "'";
         $update_row1 = mysqli_query($mysqli, $reduce_row1_value);
    }
} 

else {

    $reduce_row2  = "UPDATE mytable SET row2  = row2  - 1 WHERE user_uuid = '" . $avatar_key . "'";
    $update_row2 = mysqli_query($mysqli, $reduce_row2);

}

?>

但我需要使用上面的5行:

  

         //   ######################## MYSQL STRUCTURE ########################
         //   | ROW 1 | ROW 2 | ROW 3 | ROW 4 | ROW 5 | user_uuid | user_name |
         //   | 100   |  100  |  100  |  100  |  100  | 12345ABC  |  admin    |
         //   #################################################################
     

希望有人可以给我一些提示,以便简化代码并使其发挥作用。

非常感谢你提前&lt; 3

2 个答案:

答案 0 :(得分:0)

我认为您可以使用包含要更新的行名称的数组。如果这些行中的某些人具有有效值,您将更新此行。如果您需要添加更多行,则只需在数组中设置一个新值。

将来您可能需要使用行名称和要验证的值。在这种情况下,您可以使用[$ key =&gt; $ value]和$ key可以是行名称,$ value是您需要验证的值。

我想你想要验证所有行,如果你想要在它被修复的行时停止迭代,或者你可以在完成bucle break的if中添加while

我希望此代码可以为您提供帮助。

<?php

$rowNames = ['row1', 'row2', 'row3'];

foreach ($rowNames as $rowName) {
    $selectRow = "SELECT $rowName FROM mytable";
    $rowResult = $mysqli->query($selectRow);    

    if ($rowResult->num_rows >= 1) {
        while($row = $rowResult->fetch_assoc()) {
            $reduceRowValue  = "UPDATE mytable SET $rowName  = $rowName  - 1 WHERE user_uuid = '" . $avatar_key . "'";
            $updateRow = mysqli_query($mysqli, $reduceRowValue);
        }
    }
}

答案 1 :(得分:0)

   foreach($xlsxno as $row)
        {
            if($row[0] == 0)
            {
                continue;
            }
            else
            {
                $data = array(
                'no' => $row[0],
                'name' => $row[1]
                );
            }
        }