使用php循环mysql表,为什么&';其他语句是否有效?

使用php循环mysql表,为什么&';其他语句是否有效?,php,mysql,sql,if-statement,while-loop,Php,Mysql,Sql,If Statement,While Loop,我有一组页面,它们有两个边界(来自用户输入),这会产生一个值,然后放入mysql表中。然后将该值用作边界,该过程将自身重复,创建一个新值并将其添加到sql表中 现在,这个过程有一个精确的顺序,我尝试使用if/else if语句对它们进行排序: $result = mysql_query("SELECT * FROM partitions WHERE subject_id = $subject_id AND stimulus = $stimulus", $DB); if(!result) {

我有一组页面,它们有两个边界(来自用户输入),这会产生一个值,然后放入mysql表中。然后将该值用作边界,该过程将自身重复,创建一个新值并将其添加到sql表中

现在,这个过程有一个精确的顺序,我尝试使用if/else if语句对它们进行排序:

$result = mysql_query("SELECT * FROM partitions 
WHERE subject_id = $subject_id AND stimulus = $stimulus", $DB);

if(!result) {
die("Database query failed: " . mysql_error());}

    while ($row = mysql_fetch_array($result)){

    if($row[6] == NULL){

    $query1  = "UPDATE partitions SET t_1_2 = $t_half WHERE subject_id = $subject_id AND stimulus = $stimulus";
    mysql_query($query1) or trigger_error(mysql_error()." in ".$query1);

    $target_page = "pan00";
    $next_t_a = $row[2];   // from user input
    $next_t_b = $t_half;   // can i replace $t_half by $row[6]?

}


elseif($row[4] == NULL)
    {

    $query1  = "UPDATE partitions SET t_1_4 = $t_half WHERE subject_id = $subject_id AND stimulus = $stimulus";
    mysql_query($query1) or trigger_error(mysql_error()." in ".$query1);

    $target_page = "pan00";
    $next_t_a = $row[2];
    $next_t_b = $row[4]; }


elseif($row[3] == NULL)
    {

    $query1  = "UPDATE partitions SET t_1_8 = $t_half WHERE subject_id = $subject_id AND stimulus = $stimulus";
    mysql_query($query1) or trigger_error(mysql_error()." in ".$query1);

    $target_page = "CE";
    $next_t_a = $row[4];
    $next_t_b = $row[6]; }
我认为使用else if语句可以检查条件是否为真,如果为真,则只需执行括号中的代码并跳过循环,但在这里,$row[6]和$row[4]都会同时更新。这是否与我设置用于获取行值的while循环有关

我试着使用goto和break,但没有用


问题在于while循环(多亏了那些指出它的人),这就引出了我的下一个问题:没有这个while循环,我如何使用mysql数据?删除它会使页面崩溃,就像php没有存储结果一样?

当不再有行可用时,
while
语句将停止。如果在
PHP
中的
循环中表达赋值,只要变量有效(而不是
NULL
),则该条件将被视为true。否则循环将结束。

对于每个
迭代,而
迭代只执行一个条件。这意味着,在第一种情况下,第一个条件可以满足,但在第二种情况下——其他一些条件。