2016-04-10 34 views
-1

Aşağıda gösterilen aşağıdaki kodum var. Benim sorunum şu anda bu mysql tablosunun her kaydı güncellenmesine izin veriyor. Olmak istediğim, kullanıcının güncelleme düğmesine tıklaması ve bu kaydı orijinal forma çeken bir kod parçasını çalıştırmasıdır. Böylece sadece bir rekoru güncelleyebilirler. ÖncedenGüncelleme mysql'nin tek tek kayıtları

Sen girdi etiketleri kapatmak için cevapsız
<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

Burada bir SQL enjeksiyona açıksınız, btw. –

+0

Bir sınıf projesi için, ancak daha güvenli hale getirmek için önerilere açığım. Herhangi bir öğrenme iyi öğreniyor – Spencer

cevap

0

yılında

sayesinde de zaten bu beri e-postanın gizli girişini ihtiyacım yok. belki bir problem ise, olur,

<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

Bunun için teşekkürler, ancak kodu nasıl düzenlerim böylece güncelleme sizi yeni bir sayfaya götürür, böylece sadece bu bireysel kaydı güncelleyebilirsiniz? – Spencer

+0

@Spencer mertizci'nin orijinal sorunuzu cevapladığını ve orijinal mesajınızı çözdüğü takdirde çözülecek şekilde işaretlenmesi gerektiğine inanıyorum. Buradaki ikinci sorunun sadece bu; başka bir soru. Bir cevabı nasıl kabul edeceğiniz ve çözdüğünüz şekilde nasıl işaretleyeceğiniz aşağıda açıklanmıştır: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work daha sonra buraya geri dönün ve onay işareti ile onaylayın. yeşile dönene kadar. Bu toplumu bilgilendirir, bir çözüm bulundu. Aksi halde, diğerleri sorunun hala açık olduğunu düşünebilir ve (daha fazla) cevap göndermek isteyebilir. –

0

İlk \> ile giriş etiketleri tamamlayın: Neyse ben aşağıdaki gibi kodunuzu değiştirmiş, bu bir deneyin.

  • deneyin girişi hidden adını değiştirmek için:

    belki çalışan birkaç çözümler var.

  • comics tablosundaki satırları id tarafından düzenlemeye çalışın. Ardından, nerede koşulda, satırlarını kimliğine göre seçin.
  • Kimlik parametresi veren bir girdi eklemelisiniz. Bu kimlikle koşulların güncellenmesi için satırlarınızı seçin.
İlgili konular