Php 未在选定的特定单选按钮上显示其他结果

Php 未在选定的特定单选按钮上显示其他结果,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,使用4单选按钮作为选项,选择付款列,将所有数字相加。我 如果select等于first,则写入第一个查询;如果select等于first,则写入第二个查询。即使我选择了第二次付款,它也会在第一次付款时显示。是因为我在代码末尾的回音吗?有人能帮忙吗?是否应将用于 HTML编码(paycal.HTML): <body> <form name="input" action="paycal.php" method="post"> <fieldset> <lege

使用4单选按钮作为选项,选择付款列,将所有数字相加。我 如果select等于first,则写入第一个查询;如果select等于first,则写入第二个查询。即使我选择了第二次付款,它也会在第一次付款时显示。是因为我在代码末尾的回音吗?有人能帮忙吗?是否应将
用于

HTML编码(paycal.HTML):

<body>
<form name="input" action="paycal.php" method="post">
<fieldset>
<legend>Which payment do you want to SUM up:</legend>
    <input type="radio" name="payment" value="first" /> First 
    <input type="radio" name="payment" value="second" /> Second
    <input type="radio" name="payment" value="third"  /> Third
    <input type="radio" name="payment" value="fourth"  /> Fourth

</fieldset>
<input type="submit" value="Submit" />   
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);


$pay=$_REQUEST['payment']; 

// MySQL database connection, username, password, database name
$con=mysqli_connect("localhost","username","password","database_name");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if ($pay=="first") $query="SELECT *, SUM(first_payment) FROM `Customer Information`";
else if ($pay=="second") $query="SELECT *, SUM(second_payment) FROM `Customer Information`";
else if ($pay=="third") $query="SELECT *, SUM(third_payment) FROM `Customer Information`";
else if ($pay=="fourth") $query="SELECT *, SUM(fourth_payment) FROM `Customer Information`";


$result = mysqli_query($query);

// Executing and error checking of query
if (!mysqli_query($con,$query)) {
  die('Error: ' . mysqli_error($con));
}

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

 echo $row['first_payment'];
}

// Close MySQL
mysqli_close($con);
?>

您希望汇总哪笔付款:
弗斯特
第二
第三
第四
PHP编码(paycal.PHP):

<body>
<form name="input" action="paycal.php" method="post">
<fieldset>
<legend>Which payment do you want to SUM up:</legend>
    <input type="radio" name="payment" value="first" /> First 
    <input type="radio" name="payment" value="second" /> Second
    <input type="radio" name="payment" value="third"  /> Third
    <input type="radio" name="payment" value="fourth"  /> Fourth

</fieldset>
<input type="submit" value="Submit" />   
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);


$pay=$_REQUEST['payment']; 

// MySQL database connection, username, password, database name
$con=mysqli_connect("localhost","username","password","database_name");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

if ($pay=="first") $query="SELECT *, SUM(first_payment) FROM `Customer Information`";
else if ($pay=="second") $query="SELECT *, SUM(second_payment) FROM `Customer Information`";
else if ($pay=="third") $query="SELECT *, SUM(third_payment) FROM `Customer Information`";
else if ($pay=="fourth") $query="SELECT *, SUM(fourth_payment) FROM `Customer Information`";


$result = mysqli_query($query);

// Executing and error checking of query
if (!mysqli_query($con,$query)) {
  die('Error: ' . mysqli_error($con));
}

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

 echo $row['first_payment'];
}

// Close MySQL
mysqli_close($con);
?>

您想用什么显示:

 echo $row['first_payment'];
?

如果要显示不同的结果,必须切换列

switch($pay)
{
   case "first":
      echo $row['first_payment'];
      break;
   case "second":
      echo $row['second_payment'];
      break;
   case "third":
      echo $row['third_payment'];
      break;
   case "fourth":
      echo $row['fourth_payment'];
      break;
   default:
      echo "nothing selected";
}
或:

将sql调整为以下内容:

SELECT SUM(first) as paymentSum From ...
并使用它

echo $row['paymentSum'];
只需使用您使用的变量(
$pay
)动态生成密钥


换句话说,这是非常糟糕的桌子设计。如果你有一个更好的设计,你就不会陷入这样的问题。我建议你改一下。

这张桌子的设计有点不规范。我会先解决这个问题。是的,我理解,但是如果我的html提供了选择显示哪一笔付款的选项,那么如果用户选择第一笔付款,我将如何进行选择,那么它将显示第一笔付款,如果从html端选择了第二笔付款选项,则显示第二笔付款。您已经使用sql查询进行了切换<代码>如果($pay==xxx)是,我必须在代码中这样做,但当我单击“立即提交”时,它仅显示第一笔付款,即使我选择显示第二笔付款。是的,因为您回显$row[“第一笔付款”]!!!您必须从数据库中回显相应的列;)谢谢你,但是说你上面写的只是一次创建多个输出。我只想要一个结果,而不是所有的结果,这就是我为什么要写
if
。例如,在HTML端,我选择“第二次付款”,一旦单击“提交”,它将只返回一个输出,即所有第二次付款的总和。而不是一次向我显示所有4个付款输出。谢谢!按表设计,您是否指向整个数据库表?如果是数据库,那是因为它用DATEDIFF和客户投资的金额计算利息,所以它被分成4笔特定利率的付款。如果你能给我提供更多的细节,我不太确定我还可以选择什么样的设计。我很想改进设计。