2016-04-10 8 views
-1

私は以下のコードを持っています。私の問題は、現在のところ、これはmysqlテーブルのすべてのレコードを更新できることです。私がしたいのは、ユーザーが更新ボタンをクリックして、そのレコードを元のフォームに引っ張るコードを実行することです。だから彼らはその一つのレコードだけを更新することができます。事前にmysqlの個々のレコードの更新

おかげ

<html> 
<head> 
    <title>Comic Collectors Club</title> 
    <link rel="stylesheet" type="text/css" href="stylesheet.css" media="screen and (min-width:481px)"> 
    <link rel="stylesheet" type="text/css" href="stylesheet mobile.css" media="screen and (max-width:480px)"> 
</head> 
<body> 
<div id="page"> 

<div id="header"> 
<h1>Welcome To The Comic Collectors Club Website</h1> 
</div> 

<div id="nav"> 
</body> 
    <ul class="nav navbar-nav"> 
     <li><a href="index.html">Home</a></li> 
     <li><a href="#">About Us</a></li> 
     <li><a href="database.html">Add Your Comic To The Database</a></li> 
     <li><a href="export.php">View Our Collection</a></li> 
     <li><a class="active" href="update.php">Update Our Collection</a></li> 
    </ul> 
</div> 

<div id="section"> 

<div id="search"> 
<input type="text"></input> 
<input type="button" value="Search"></input> 
</div> 

<h1>Update Our Collection</h1> 
<?php 

define('DB_NAME', 'comics'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', 'password1234'); 
define('DB_HOST', 'localhost'); 

$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

if (!$link) { 
    die("Could not connect: " . mysql_error()); 
} 

mysql_select_db("comics",$link); 

if (isset($_POST['update'])){ 
$UpdateQuery = "UPDATE comics SET Email='$_POST[email]', Title='$_POST[Title]', Issue='$_POST[issue]', Edition='$_POST[edition]', Publisher='$_POST[publisher]', Quality='$_POST[quality]' WHERE Email='$_POST[hidden]'"; 
mysql_query($UpdateQuery, $link); 
}; 

$sql = "SELECT * FROM comics"; 
$myData = mysql_query($sql,$link); 


echo "<table border=1> 
<tr><th>Email</th> 
    <th>Title</th> 
    <th>Issue</th> 
    <th>Edition</th> 
    <th>Publisher</th> 
    <th>Quality</th> 
    <th>Cover Image</th></tr>"; 
while($record = mysql_fetch_array($myData)){ 
echo "<form action=update.php method=post>"; 
echo "<tr>"; 
echo "<td>" . "<input type=email name=email value=" . $record['Email'] . " </td>"; 
echo "<td>" . "<input type=text name=title value=" . $record['Title'] . " </td>"; 
echo "<td>" . "<input type=number name=issue value=" . $record['Issue'] . " </td>"; 
echo "<td>" . "<input type=text name=edition value=" . $record['Edition'] . " </td>"; 
echo "<td>" . "<input type=text name=publisher value=" . $record['Publisher'] . " </td>"; 
echo "<td>" . "<input type=text name=quality value=" . $record['Quality'] . " </td>"; 
echo "<td>" . "<input type=hidden name=hidden value=" . $record['Email'] . " </td>"; 
echo "<td>" . "<input type=submit name=update value=update" . " </td>"; 
echo "</form>"; 
} 
echo "</table>"; 
mysql_close($link); 
?> 
<div id="footer"> 
    <table width="100%"> 
     <tr> 
      <td><a href="#">Company Information</a></td> 
      <td><a href="#">Conventions</a></td> 
      <td><a href="#">Collections</a></td> 
      <td><a href="#">Your Account</a></td> 
     </tr> 
    </table> 
</div> 

</div> 
</body> 
</html> 
+0

あなたはここにSQLインジェクションをしていて、btwです。 –

+0

それはクラスプロジェクトのために、私はそれをより安全にするための提案に開いています。任意の学習は良い学習です – Spencer

答えて

0

あなたは、あなたがこれをすでに持っているので、メールの隠し入力を必要といけないも、あなたの入力タグを閉じるために逃しました。とにかく、私は以下のようにコードを変更し、これを試してみてください:

<html> 
<head> 
    <title>Comic Collectors Club</title> 
    <link rel="stylesheet" type="text/css" href="stylesheet.css" media="screen and (min-width:481px)"> 
    <link rel="stylesheet" type="text/css" href="stylesheet mobile.css" media="screen and (max-width:480px)"> 
</head> 
<body> 
<div id="page"> 

    <div id="header"> 
     <h1>Welcome To The Comic Collectors Club Website</h1> 
    </div> 

    <div id="nav"> 
</body> 
<ul class="nav navbar-nav"> 
    <li><a href="index.html">Home</a></li> 
    <li><a href="#">About Us</a></li> 
    <li><a href="database.html">Add Your Comic To The Database</a></li> 
    <li><a href="export.php">View Our Collection</a></li> 
    <li><a class="active" href="update.php">Update Our Collection</a></li> 
</ul> 
</div> 

<div id="section"> 

    <div id="search"> 
     <input type="text"></input> 
     <input type="button" value="Search"></input> 
    </div> 

    <h1>Update Our Collection</h1> 
    <?php 

    define('DB_NAME', 'comics'); 
    define('DB_USER', 'root'); 
    define('DB_PASSWORD', 'password1234'); 
    define('DB_HOST', 'localhost'); 

    $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 

    if (!$link) { 
     die("Could not connect: " . mysql_error()); 
    } 

    mysql_select_db("comics",$link); 

    if (isset($_POST['update'])){ 
     $UpdateQuery = "UPDATE comics SET Email='".$_POST['email']."', Title='".$_POST['Title']."', Issue='".$_POST['issue']."', Edition='".$_POST['edition']."', Publisher='".$_POST['publisher']."', Quality='".$_POST['quality']."' WHERE Email='".$_POST['email']."'"; 
     mysql_query($UpdateQuery, $link); 
    }; 

    $sql = "SELECT * FROM comics"; 
    $myData = mysql_query($sql,$link); 


    echo "<table border=1> 
<tr><th>Email</th> 
    <th>Title</th> 
    <th>Issue</th> 
    <th>Edition</th> 
    <th>Publisher</th> 
    <th>Quality</th> 
    <th>Cover Image</th></tr>"; 
    while($record = mysql_fetch_array($myData)){ 
     echo "<form action=update.php method=post>"; 
     echo "<tr>"; 
     echo "<td>" . "<input type=email name=email value='" . $record['Email'] . "'></td>"; 
     echo "<td>" . "<input type=text name=title value='" . $record['Title'] . "'> </td>"; 
     echo "<td>" . "<input type=number name=issue value='" . $record['Issue'] . "'> </td>"; 
     echo "<td>" . "<input type=text name=edition value='" . $record['Edition'] . "'> </td>"; 
     echo "<td>" . "<input type=text name=publisher value='" . $record['Publisher'] . "'> </td>"; 
     echo "<td>" . "<input type=text name=quality value='" . $record['Quality'] . "'> </td>"; 
     echo "<td>" . "<input type=hidden name=hidden value='" . $record['Email'] . "'> </td>"; 
     echo "<td>" . "<input type=submit name=update value='update'></td>"; 
     echo "</form>"; 
    } 
    echo "</table>"; 
    mysql_close($link); 
    ?> 
    <div id="footer"> 
     <table width="100%"> 
      <tr> 
       <td><a href="#">Company Information</a></td> 
       <td><a href="#">Conventions</a></td> 
       <td><a href="#">Collections</a></td> 
       <td><a href="#">Your Account</a></td> 
      </tr> 
     </table> 
    </div> 

</div> 
</body> 
</html> 
+0

ありがとうございますが、コードを編集して新しいページに移動するだけで、個々のレコードを更新できるようになります。 – Spencer

+0

@Spencer私はmertizciがあなたの元の質問に答えてくれたと信じています。ここでの2番目の質問はそれだけです。別の質問。回答を受け取り、それを解決済みとする方法は次のとおりです。http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-workここに戻って、チェックマークそれが緑色に変わるまで。これは解決策が見つかったことをコミュニティに知らせます。そうでない場合、他の人は質問がまだ開いていると思うかもしれませんし、(もっと)回答を投稿したいかもしれません。 –

0

まず、\>と入力タグを完了し、多分問題はそのために起こります。

  • 入力hiddenの名前を変更しよう:

    は、私は多分働くカップルのソリューションを持っています。

  • テーブルcomicsの行をIDで整理してみてください。次に、where条件で、IDで行を選択します。
  • idパラメータを与える入力を追加する必要があると思います。 このIDで更新する行をwhereのwhereで選択します。
関連する問題