2016-08-21 12 views
0

私は、テーブルに製品を表示するPHPとMySQLを使用してウィッシュリストのWebサイトを開発しています。ユーザーは、それぞれの製品を自分の希望リストに追加するオプションがあります。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>"; 
?> 
+1

これは動作しません。あなたは$ _POSTを待ち、あなたのリンクは$ _GETを返します。 – Amazone

+0

これを修正するには、POSTをGETに変更する必要がありますか? – ConorMcC

+1

[mysql_'データベース拡張](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)を使用しないでください。 は廃止予定ですPHP7で)特にPHPを学んでいるならば、あなたのエネルギーを 'PDO'データベース拡張を学ぶのに費やしてください。 [こちらから](http://php.net/manual/en/book.pdo.php)そのとてもかわいいです。 – RiggsFolly

答えて

1
  • リンクでのクリックは、GETリクエストを生成するのであなたは$_GET['Add To List']$_POST['Add To List']を変更する必要があります。変数を作成して、ユーザがリンクをクリックするとだから、スペース
  • と変数名は、パラメータまたは特定の行を識別する任意の方法として、IDを渡していないを作成してはならない、?Add To List
  • 変数が設定され、ループ上のすべての要素が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_ *関数の置換を見ようとします。

+0

ありがとう、それは非常に便利です。製品は追加されていますが、あなたが言うとおり、すべてが追加されています。 私はselectステートメントを使ってidを取得しようとしていますが、何もしないようです。明らかに私が行方不明に見える方法はありますか? – ConorMcC

+0

カルロス - あなたが大変な時間を私に助けてくれたことはありませんか?私は代わりにMySQLiを使用し始めたので、私はそれに応じてあなたのサンプルを変更し、それは治療を働いた。 サイトはローカルホストから実行され、プロジェクトの仮想サイトであるため、公開されません。しかし、私はMySQLの機能に関するすべての助言を取っています。 – ConorMcC

1

"SELECT id from coffe_machine"を実行しようとすることができます。結果を取得しても安全でないmysql関数を使用しないでください。

関連する問題