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

时间:2016-08-21 18:53:49

标签: php mysql

我正在使用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>";
?>

2 个答案:

答案 0 :(得分:1)

  • 您应该将$_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_ *函数

答案 1 :(得分:1)

你可以尝试“从coffe_machine中选择id”;然后获取结果也请不要使用mysql函数它们不安全