PHP MYSQL:显示表的内容,然后添加到另一个表


PHP MYSQL: display contents of table then add into another table

我正在使用PHP和MySQL开发一个愿望清单网站,在表中显示产品。用户可以选择将每种产品添加到自己的愿望清单中。

我可以显示产品没有问题,但是一旦用户单击选项添加到他们自己的列表,我什么也得不到。我运行的服务器也没有标记错误,所以我不知道我做错了什么。

任何帮助都将非常感激。我已经包含了下面的代码。

 <?php
//connect to db
include('base.php');
//get results from db
$result = mysql_query("SELECT * FROM coffee_machines")
or die(mysql_error());
echo "<table border= '1' cellpadding='10'>";
echo "<tr> <th>ID</th> <th>Brand</th> <th>Description</th> <th>Price(£)</th> <th>image</th> </tr>";
$img_url = "http://localhost:8080/";
//loop through results of db query so items are displayed
while($row = mysql_fetch_array($result)){
    // echo out contents of each row
    echo '<tr>';
    echo '<tr>';
    echo '<td>'.$row["Product_ID"].'</td>';
    echo '<td>'.$row["Brand"].'</td>';
    echo '<td>'.$row["Description"].'</td>';
    echo '<td>'.$row["Price"].'</td>';
    echo '<td>'.'<img src="'.$img_url.$row['image'].'" /></td>';
    echo '<td>'.'<a href = "?Add To List">Add To List</a></td>';
    echo '</tr';
    echo '</tr';
    $add_to_list = "INSERT INTO andrew VALUES('".$row["Product_ID"]."', '".$row["Brand"]."', '".$row["Description"]."', '".$row["Price"]."', '".$row["image"]."')";
    if(isset($_POST['Add To List'])){
    mysql_query($add_to_list);
}
//close table
echo "</table>";
?>
  • 您应该将$_POST['Add To List']更改为$_GET['Add To List'],因为点击链接会生成GET请求。
  • ?Add To List你是创建一个变量,你不应该创建变量名与空格
  • 没有传递id作为参数或任何识别特定行的方式,因此如果用户单击链接,将设置变量,并且循环中的所有元素都将插入到andrew表中。您应该接收到id并对db
  • 进行新的查询。
一个简单的例子,你的链接应该是:
echo '<td>'.'<a href = "?id='.$row["Product_ID"].'">Add To List</a></td>'; 

然后将if 置于循环之外,如

if(isset($_GET['id'])){
    $result = mysql_query("SELECT * FROM coffee_machines Where id=".$_GET['id']." LIMIT 1");
    $row = mysql_fetch_array($result); 
    if ($row) {
       $add_to_list = "INSERT INTO andrew VALUES('".$row["Product_ID"]."', '".$row["Brand"]."', '".$row["Description"]."', '".$row["Price"]."', '".$row["image"]."')";
      mysql_query($add_to_list);
    }
}

,但正如已经说过的,您将很快尝试寻找替代mysql_*函数

您可以尝试执行"SELECT id from coffe_machine";然后获取结果也请不要使用mysql函数它们不安全