2013-04-04 42 views
0

我试图创建一个表单,以允许用户将表单中的数据更新为数据库中的现有金额。这是我迄今为止所看到的价值的两倍。我想我需要从数据库中提取值,然后从表单中添加数据。如何将HTML表单中的值添加到数据库中的值

<?php 
$username = "username"; 
$password = "password"; 
$hostname = "localhost"; 

//connection to the database 
$dbhandle = mysql_connect($hostname, $username, $password) 
or die("Unable to connect to MySQL"); 
echo "<font face=tahoma color=#ff000><b>Connected to MySQL</b></font><br><br>"; 

//select a database to work with 
$selected = mysql_select_db("pdogclan_points",$dbhandle) 
    or die("Did this change"); 

// Formulate Query 
$_POST["filter"]; 
$memid = mysql_real_escape_string($_POST["Member_ID"]); 
$query = sprintf("SELECT Member_ID, Bank, Reward_1, Reward_2, Reward_3 FROM Points_Rewards WHERE Member_ID = '$memid'") or die("Could Not Formulate the Query"); 

//execute the SQL query and return records 
$result = mysql_query($query); 

// Check result 
// This shows the actual query sent to MySQL, and the error. Useful for debugging. 
if (!$result) { 
    $message = 'Invalid query: ' . mysql_error() . "\n"; 
    $message .= 'Whole query: ' . $query; 
    die($message); 
} 

//fetch tha data from the database 
while ($row = mysql_fetch_array($result)) 
echo "<table width=750 cellspacing=2 cellpadding=2 border=2> 
     <tr> 
      <td bgcolor=#000000 width=150><font face=tahoma color=white>ID: {$row['Member_ID']}</font></td>". 
      "<td width=150><font face=tahoma>Bank: {$row['Bank']}</td>". 
      "<td width=150><font face=tahoma>Reward 1: {$row['Reward_1']}</td>". 
      "<td width=150><font face=tahoma>Reward 2: {$row['Reward_2']}</td> ". 
      "<td width=150><font face=tahoma>Reward 3: {$row['Reward_3']}</td> 
     </tr> 
    </table><br></font>";//display the results 
// Formulate Update Query 
$_POST["submit"]; 
$memid = mysql_real_escape_string($_POST["Member_ID"]); 
$query = sprintf("SELECT Member_ID, Bank, Reward_1, Reward_2, Reward_3 FROM Points_Rewards WHERE Member_ID = '$memid'") or die("Could Not Formulate the Query"); 

while ($row = mysql_fetch_array($result)) 
{ 
$bankdb = $row['Bank']; 
$reward1db = $row['Reward_1']; 
$reward2db = $row['Reward_2']; 
$reward3db = $row['Reward_3']; 
} 
echo $bank; 
echo $reward1; 
echo $reward2; 
echo $reward3; 
$memid = mysql_real_escape_string($_POST["Member_ID"]); 
$bank = $_POST['bank']; 
$reward1 = $_POST['reward1']; 
$reward2 = $_POST['reward2']; 
$reward3 = $_POST['reward3']; 



$query = "UPDATE Points_Rewards Set Bank = ('$bank' + '$bankdb'), Reward_1 = ('$reward1' + '$reward1'), Reward_2 = ('$reward2' + '$reward2'), Reward_3 = ('$reward3' + '$reward3') WHERE Member_ID = '$memid'"; 
$result = mysql_query($query) or die(mysql_error()); 



if(mysql_query($query)){ 
echo "updated";} 
else{ 
echo "fail";} 

//close the connection 
mysql_close($dbhandle); 
?> 
+0

好的。你为什么不创建表单? – 2013-04-04 23:09:24

+1

欢迎来到StackOverflow!请不要使用mysql_ *函数前进http://bit.ly/phpmsql。它们不再被维护,并且正式被弃用https://wiki.php.net/rfc/mysql_deprecation。了解有关Prepared语句http://j.mp/T9hLWi,并使用PDO http://php.net/pdo或MySQLi http://php.net/mysqli。本文:http://j.mp/QEx8IB可以帮助您决定使用哪一个。 – Revent 2013-04-04 23:12:12

回答

0

你可以在你的SQL表中的值使用运营商 - 这将是这个样子:

$query = "UPDATE Points_Rewards Set Bank = (Bank + '$bankdb'), Reward_1 = (Reward_1 + '$reward1'), Reward_2 = (Reward_2 + '$reward2'), Reward_3 = (Reward_3 + '$reward3') WHERE Member_ID = '$memid'"; 
+0

非常感谢,这真的有帮助 – 2013-04-05 02:52:09

+0

你介意接受我的答案吗? :) 我很高兴它的帮助。 – EToreo 2013-04-05 17:24:11

1

使用基本的HTML只需创建一个表单,数据存储您获取从数据库PHP变量,然后用PHP标签显示数据,如下所示:

<form action="..." method="post" > 
<?php 
$memid = mysql_real_escape_string($_POST["Member_ID"]); 
$query = sprintf("SELECT Member_ID, Bank, Reward_1, Reward_2, Reward_3 FROM Points_Rewards WHERE Member_ID = '$memid'") or die("Could Not Formulate the Query"); 

while ($row = mysql_fetch_array($result)) 
{ 
?> 
<input type="text" name="r1" value="<?php echo $row['Reward_1']; ?>" /> ; 
<input type="text" name="r2" value="<?php echo $row['Reward_2']; ?>" /> ; 
<input type="text" name="r3" value="<?php echo $row['Reward_3']; ?>" /> ; 
...  
<?php 
} 
?> 

... 
</form> 
+0

也如其他人所说,使用mysqli_ *或PDO,因为mysql_ *已被弃用。 – 2013-04-04 23:26:46

0

这是结构

// if a form is submitted 
if(isset($_POST['submit'])) { 
$memid = $_POST["Member_ID"]; 

//SELECT or INSERT or UPDATE your DATABASE. Yes use PDO and prepared statements. 
$query = $dbh->prepare("SELECT Member_ID, Bank, Reward_1, Reward_2, Reward_3 FROM Points_Rewards WHERE Member_ID = '$memid'") 

//don't forget to bind parameters 
$sth->bindParam(':memid', $memid, PDO::PARAM_INT); 
$sth->execute(...); 

//the loop 
while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
echo ''; 
} 

//close the if statement 
} 

//write the form 
<form method="post"/> 
<input name="Member_ID" type="text" required/> 
<input name="submit" type="submit" value="submit" /> 
</form> 
相关问题