PHP,SQL根据下拉选择菜单从数据库中填充信息



我已经设法将数据从SQL数据库拉入下拉选择菜单并添加了一个提交按钮。但是,当用户单击提交时,我正在努力从其他(甚至相同(表中的数据库(例如年龄,ID(填充更多数据。

我希望用户能够从下拉菜单中选择客户名称并提交。 单击"提交"按钮时,应从数据库中填充并显示链接到特定客户名称(例如Rob(的其他(例如年龄,ID(详细信息。 请帮忙。我是 php 的新手,花了几个小时在这个愚蠢的事情上。我只被允许使用php,sql和html。

非常感谢。

下拉菜单.php -原始版本(不起作用(

<?php
include "db.php"; // Database connection 

$sql="SELECT customerName FROM customers"; 

echo "<select name=customers value=''>Customer Name</option>"; 
foreach ($conn->query($sql) as $row){
echo "<option value=$row[customerName]>$row[customerName]</option>"; 

}
echo "</select>";
?>
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<input type="submit" value="SUBMIT"/>
</form>
</body>

下拉菜单.php - 更新版本

<?php
?>

<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customerName">Customer Name</option> 
<?php
include "db.php"; 
$sql="SELECT `customerName` FROM `customers`"; 
foreach ($conn->query($sql) as $row){
echo "<option value="".$row['customerName']."">".$row['customerName']."</option>"; 
}
?>
</select>
<input type="submit" value="SUBMIT"/>
</form>

数据库.php

<?php
// to connect database 
define('DB_NAME', 'clients');
define('DB_USER', 'root');
define('DB_PASSWORD', '');
define('DB_HOST', 'localhost');
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or
die ("Cannot connect");
echo  "Connected to Clients";
?>  

iNeedHelpWithThisFile.php
echo 语句 - age、name 、id 未被执行

<?php
echo "<pre>";
print_r($_REQUEST);
echo "</pre>";
include('db.php');
echo "<br />";
$customerName = $_POST['submit'];

if(array_key_exists('customerName', $_REQUEST ))
{
// not sure if there's an issue with intval..?
$customerName = intval($_REQUEST['customerName']);
echo("Customer: $customerName <br />");
if ($customerName)
{
$sql = "SELECT * FROM customers where customerName= ?";  //
// $conn -defined in db.php
if($stmt = mysqli_prepare($conn, $sql))
{
mysqli_stmt_bind_param($stmt, "i", $customerName);
mysqli_stmt_execute($stmt);
$queryresult = mysqli_stmt_get_result($stmt);
}
else {
echo "Could not fetch results!";
}

if ($queryresult) 
{
if ($currentrow = mysqli_fetch_assoc($queryresult)) {
$name = $currentrow['customerName'];
$ID =  $currentrow['customerID'];
$age  = $currentrow['age'];

// these statements are not being executed
echo "Customer Name: $name <br />";
echo "Customer ID: $ID <br />";
echo "Age: $age <br />";
}
}
else {
echo "<p>Customer not in the database</p>";
}
}
}
?>

总而言之:

<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option> 
<?php
include "db.php"; 
$sql="SELECT `customerName` FROM `customers`"; 
foreach ($conn->query($sql) as $row){
echo "<option value="".$row['customerName']."">".$row['customerName']."</option>"; 
}
?>
</select>
<input type="submit" value="SUBMIT"/>
</form>

或者如果你喜欢简短的PHP标签:

<php
include "db.php"; 
$sql="SELECT `customerName` FROM `customers`"; 
?>
<form id="main" method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option>
<?php foreach ($conn->query($sql) as $row){ ?>
<option value="<?=$row['customerName'];?>"><?=$row['customerName'];?></option>
<?php } ?>
</select>
<input type="submit" value="SUBMIT"/>
</form>

如果您想同时提交年龄身份证以及客户名称,您可以像这样:

<php
include "db.php"; 
$sql="SELECT `age`, `ID`, `customerName` FROM `customers`"; 
?>
<form id= method="post" action = "iNeedHelpWithThisFile.php">
<select name="customers">Customer Name</option>
<?php foreach ($conn->query($sql) as $row){
$conc=base64_encode($row['age']."|".$row['ID']."|".$row['customerName']); ?>
<option value="<?=$conc;?>"><?=$row['customerName'];?></option>
<?php } ?>
</select>
<input type="submit" value="SUBMIT"/>
</form>

iNeedHelpWithThisFile中.php你像这样去

$c = strip_tags(htmlspecialchars($_POST['customers']);
$c = base64_decode($c);
$name = explode("|",$c)[2];
$ID =  explode("|",$c)[1];
$age  = explode("|",$c)[0];
// these statements are not being executed
echo "Customer Name: $name <br />";
echo "Customer ID: $ID <br />";
echo "Age: $age <br />";

最新更新