PHP MYSQL号码分布

时间:2014-05-21 07:14:09

标签: php mysql conditional-statements

你能想象我的问题吗? ..例如我有无限碗。但是在一个碗里,我只能拉3个苹果。所以,如果有人给我一个5个苹果,我必须将3个苹果放入一个碗中,2个放入第二个碗中。如果有人给我7个苹果,我把3合1,每秒3个,最后一个苹果放在一个碗里。

现在我尝试在php和mysql中做这个,苹果作为变量和碗在mysql中作为行。

if (isset($_POST[button])) {

    $apples = $_POST["apples"];
    $max_apples_in_bowl = 3;

    //if apple variable is ≤ 3 it is OK so i can write into table
    if ($apples <= 3) {
        $query = "INSERT INTO `bowls` (`count_apples`) VALUES ('$apples');"; 
        mysql_query($query);
    }

    //but if not - i have condition that include cycle which write into table value 3 and deducted from the apple value 3. This cycle continue until apples ≤ 3 and then write a reminding part into table
    else {
        while ($apples <= 3) {
            $secondquery = "INSERT INTO `bowls` (`count_apples`) VALUES ('$max_apples_in_bowl');"; 
            mysql_query($secondquery);
            $apples = $apples - $max_apples_in_bowl;
            $thirdquery = "INSERT INTO `bowls` (`count_apples`) VALUES ('$apples');"; 
            mysql_query($thirdquery);

        }
    }
}

但它不会奏效。当然,如果我在0-3之间放入$apples变量号,一切正常,它会将其写入表中。但如果我放在这里4 f.e.什么都没发生。

你能和我一起帮助我吗?

谢谢。

4 个答案:

答案 0 :(得分:0)

while ($apples <= 3)应为while ($apples > 3)

答案 1 :(得分:0)

你的while语句开始时你的标牌错了。放入时($ apples&gt; 3)。 ;)

不仅仅是尝试这个

while ($apples > 3){
$seconddaryQuery = "INSERT INTO 'bowls' ('count_apples') VALUES ('$max_apples_in_bowl')";
$mysql_query($secondquery)
$apples = $apples - 3;
}
$thirdquery = "INSERT INTO 'bowls' ('count_apples') VALUES ('$apples')";
$mysql_query($thirdquery);

你所拥有的逻辑不会补偿大于6的值 尝试这应该工作,让我知道它是如何进行所以我可以改变一些我错误的东西

答案 2 :(得分:0)

试试这段代码

$apples = $_POST["apples"];
$max_apples_in_bowl = 3;

$chunks = (int)($apples/$max_apples_in_bowl);
$remainder = $apples%$max_apples_in_bowl;

for($i=1; $i<=$chunks; $i++)
{
    $count_apples = $max_apples_in_bowl;
    $query = "INSERT INTO `bowls` (`count_apples`) VALUES ('$count_apples');";
    mysql_query($query); 
}

if($remainder>0)
{
    $count_apples = $remainder;
    $query = "INSERT INTO `bowls` (`count_apples`) VALUES ('$count_apples');";
    mysql_query($query); 
}

答案 3 :(得分:0)

一个简单的do ... while可以在这里提供帮助。

$apples=7;
$max_apples_in_bowl = 3;
do{
  $insert_value=$apples;
  if($apples>$_max_apples)$insert_value=3;    

  "INSERT INTO `bowls` (`count_apples`) VALUES ('$insert_value');";

  $apples-=$max_apples_in_bowl; //(7-3=4, 4-3=1, 1-3<0)
}while($apples>0);

P.S。不要使用mysql(它已被删除),使用mysqli