-4

现在我得到的只是我输入的相同值。所以它只是读取第一个 if 语句,就是它并输出相同的价格。

$mysqli = new mysqli("localhost", "root", "", "insuredcars");
if ($_POST['formcar'] == '1' || $_POST['formage'] == '18' ||  $_POST['formNCD'] == '0' || $_POST['formPoints'] == '0' )
{
$query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '3'");
while($row = mysqli_fetch_assoc($query))
{
    echo "<tr>";
    echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
    echo "</tr>";
}
echo "</table>";    
}
else if ($_POST['formcar'] == '6' || $_POST['formage'] == '18' ||  $_POST['formNCD'] ==      '0' || $_POST['formPoints'] == '0' )
{
$query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '2'");

echo "<tr>";
echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
echo "</tr>";
echo "</table>";
}
  else if ($_POST['formcar'] == '1' || $_POST['formage'] == '19' ||  $_POST['formNCD'] ==     '0' || $_POST['formPoints'] == '0' )
{
  $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '5'");

echo "<tr>";
echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
echo "</tr>";
}
echo "</table>";
4

3 回答 3

2

在 PHP 中,条件没有大括号{,并且}只会在其后执行一行。您需要添加一些大括号。

<?php

    $mysqli = new mysqli("localhost", "root", "", "insuredcars");
    if ($_POST['formcar'] == '1' || $_POST['formage'] == '18' ||  $_POST['formNCD'] == '0'   || $_POST['formPoints'] == '0' ) {
        $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '1'");
        while($row = mysqli_fetch_array($query)) {
            echo "<tr>";
            echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    } elseif ($_POST['formcar'] == '6' || $_POST['formage'] == '18' ||  $_POST['formNCD'] == '0' || $_POST['formPoints'] == '0' ) {
        $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '2'");
    }
    echo "<tr>";
    echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
    echo "</tr>";
    echo "</table>";

?>

我不确定这<tr>部分发生了什么,但是是的,这对你来说是一个好的开始。

于 2013-04-22T08:10:40.313 回答
0

许多{人失踪或处境不利。我试图猜测他们的位置。试试下面更正的语法,看看它是否按预期工作。

if ($_POST['formcar'] == '1' || $_POST['formage'] == '18' ||  $_POST['formNCD'] == '0' || $_POST['formPoints'] == '0' )
{
    $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '1'");
    while($row = mysqli_fetch_array($query))
    {
        echo "<tr>";
        echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";    
}
else if ($_POST['formcar'] == '6' || $_POST['formage'] == '18' ||  $_POST['formNCD'] == '0' || $_POST['formPoints'] == '0' )
{
    $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '2'");

    echo "<tr>";
    echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
    echo "</tr>";
    echo "</table>";
}
else if ($_POST['formcar'] == '1' || $_POST['formage'] == '19' ||  $_POST['formNCD'] ==     '0' || $_POST['formPoints'] == '0' )
{
    $query = $mysqli->query("SELECT * FROM insurance WHERE insuranceid = '5'");

    echo "<tr>";
    echo "<td> The price for insurance will be " . $row['insuranceprice'] . "</td>";
    echo "</tr>";
}
echo "</table>";

笔记:

除了括号的位置之外,您的代码中还有一些逻辑错误。例如:

  • 第一个if块应该被执行if ($_POST['formage'] == '18')……很好……</li>
  • ......但是你的 else 声明也应该......这没有意义。

我的猜测是你的意思是&&代替||,但这只是一个猜测。

于 2013-04-22T08:22:40.373 回答
0

if的陈述没有括号......试试这个:

if(cond1){

}else if(cond2){

}
于 2013-04-22T08:10:48.187 回答