我目前正在从事一个大学项目,除其他事项外,该项目要求我创建一个非常非常简单的电子商店。要求之一是允许已登录的成员查看他先前设置的要在网站上出售的所有产品(保存在数据库中),并为他提供更新可用数量的机会。产品必须显示在表格中,并且对应于产品的每一行必须显示文本输入,该文本输入将获取新的可用数量的编号。在表的外部,必须有一个提交按钮,它将所有获取的新数据发送到数据库以进行更新。 数据库包含以下信息:
产品ID(键:pid)卖方(键:vend)产品名称(键:nome)价格(键:prezzo)数量(键:数量)
由于输入的数量是不确定的,所以我认为处理输入命名的最佳方法是通过数组,所以这就是我所做的:
<?php
require_once 'header4.php' ;
require_once 'includes/dbh.php';
?>
<head>
<style>
table, th, td {
border: 3px solid black;
padding: 5px;
}
</style>
</head>
<section class="main-container">
<div class="main-wrapper">
<h2>Change</h2>
<?php
这是我用来收集属于已记录的所有项的php代码- 在用户中
if (isset($_SESSION['userID'])){
$sql = "SELECT * FROM prodotti WHERE vend ='". $_SESSION['userID']."'";
$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);
在这里我创建了数组(我完全不相信这一步)
$i = 0;
$id = array($i);
$number = array($i);
如果查询实际上检索了一些数据,我想创建一个表,其行数等于产品数,并且每行显示所需的信息。我对如何在此处创建表单感到非常困惑,我不知道是否必须在表格的内部或外部设置表格。
if($resultCheck > 0) {
echo "<table><tr><th>Nome</th><th>Venditore</th><th>Quantità</th></tr>";
echo "<form action='includes/change.inc.php' method= 'POST'>";
while($row = mysqli_fetch_assoc($result)){
echo "<tr><td>" . $row["nome"]. "</td><td>" . $row["vend"]. "</td><td>" .
$row["qty"]. " </td><td><input type='number' name= 'number[$i]' value=" .
$row["qty"]. "></td></tr>";
在这里,我想保存$ id数组中的pid,以便用户提交后,SQL查询将更新使用该数组寻址的所有产品的数量值
$id[$i] = $row["pid"];
$i++;
echo "<button type='submit' name='cge'>Change!</button>
</form>";
}
echo "</table>
在这里我想合并数组并将它们保存在会话中
$_SESSION['vettore'] = array_combine($id, $number);
}
else {
echo "0 results";
}
}
else {
echo '<p style="color:red;text-align:center;padding-top:22px;font-
family:arial"> You need to be logged in the acces data in this web page!
</p>';
}
$conn->close();
?>
</div>
</section>
<?php
require_once 'footer4.php' ;
?>
这是我编写的其他php代码
<?php
session_start();
include_once 'dbh.php';
$i = 0;
if (isset($_SESSION['userID'])){
if (isset($_POST['cge'])){
if(isset($_SESSION['vettore'])){
foreach($_SESSION['vettore'] as $ide => $numero){
$newqty = mysqli_real_escape_string($conn,$_POST['$numero']);
$sql2 = "UPDATE prodotti SET qty = '$newqty' WHERE
pid='.$ide";
$result = mysqli_query($conn, $sql2);
$i++;
}
header("Location: ../change2.php?success");
}
}
}
else {
header("Location: ../change2.php?error=failure.php");
exit ();
}
?>
现在,这不起作用,第二个php代码无法从输入中获取任何值,从而导致通过将所有qty值设置为0来简单地更新数据库。我希望对我的要求更加准确,但是我我真的迷路了,我需要您的帮助,您能引导我找到我的错误和可能的解决方案吗?
我确定这些代码中充满了错误,因此,对不起,我显然是一个初学者。