2012-03-19 32 views
1

我有捐贈頁面,當用戶點擊捐贈它將數據發佈到一個名爲test.php的php文件我試圖把我的第一次嘗試回顯名字和姓氏,但這個最終我不希望這個PHP頁面運行MySQL查詢來更新數據庫中的total_Donation行,這裏是我的主要PHP頁面。關於php後操作沒有運行的建議

它坐落在文件

<?php 
$con = mysql_connect("localhost","root","null"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("snr", $con); 

$names_sql = "SELECT first_Name, last_Name FROM donate WHERE user_ID > 0"; 
$names_query = mysql_query($names_sql)or die(mysql_error()); 
$rsNames= mysql_fetch_assoc($names_query); 

if(isset($_POST['donation']) && $_POST['donation'] != '') 
{ 
$donation = mysql_real_escape_string($_GET['donation']); 
$fname = mysql_real_escape_string($_GET['first_Name']); 
$lname = mysql_real_escape_string($_GET['last_Name']); 
$donate_sql = "UPDATE `donate` SET donate_Total = donate_Total + '{$donation}' WHERE  first_Name = '{$fname}' AND last_Name = '{$lname}'"; 
} 
mysql_close($con); 
?> 

這裏的頂部數據庫代碼是HTML

form method ="post" action="test.php"> 
<table> 

    <tr><td><label>Runner:</label></td> 
    <td> 
    <select> 
    <?php do{?> 
    <option> <?php echo $rsNames['first_Name'];?> <?php echo $rsNames['last_Name'];?></option> 
    <?php } while ($rsNames= mysql_fetch_assoc($names_query))?> 
    </select> 
    </td> 
    </tr> 
    <tr><td><label>Donation £</label></td><td><input type="text" maxlength="9" value="0.00" name="donation"/></td></tr> 
    <tr><td><input id="submit" type="submit" value="DONATE"/></td></tr> 

</table> 
</form> 

我的形式部分選擇獲取所有的姓和名細,當用戶點擊donate我希望它運行$ donation_sql,但我得到的錯誤說未識別的索引,我甚至試圖在test.php下面只是回聲first_Name這是給出了相同的錯誤。

<?php 

echo $_POST['first_Name']; 

?> 

有人可以幫助我這個,謝謝。

回答

0

的index.php

<?php 
$con = mysql_connect("localhost","root","null"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("snr", $con); 

$names_sql = "SELECT first_Name, last_Name FROM donate WHERE user_ID > 0"; 
$names_query = mysql_query($names_sql)or die(mysql_error()); 
?> 
<form method ="post" action="test.php"> 
<table> 

    <tr><td><label>Runner:</label></td> 
    <td> 
    <select name="name"> 
    <?php 
    while($list = mysql_fetch_array($names_query)) 
    { 
    ?> 
    <option value="<?php echo $list['first_Name'] . ' ' . $list['last_Name']; ?>"> 
     <?php echo $list['first_Name'] . ' ' . $list['last_Name']; ?> 
    </option> 
    <?php 
    } 
    ?> 
    </select> 
    </td> 
    </tr> 
    <tr><td><label>Donation £</label></td><td><input type="text" maxlength="9" value="0.00" name="donation" /></td></tr> 
    <tr><td><input id="submit" type="submit" name="send" value="DONATE"/></td></tr> 

</table> 
</form> 

test.php的

<?php 
$con = mysql_connect("localhost","root","null"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("snr", $con); 

if(isset($_POST['donation']) && $_POST['donation'] != '') 
{ 
$names = explode(' ',$_POST['name']); 
$first_name= $names[0]; 
$last_name= $names[1]; 
$donation = mysql_real_escape_string($_POST['donation']); 
$fname = mysql_real_escape_string($first_name); 
$lname = mysql_real_escape_string($last_name); 

$donate_sql = "UPDATE `donate` SET donate_Total = donate_Total + '" .$donation. "' WHERE first_Name = '" .$fname. "' AND last_Name = '" .$lname. "'"; 

echo 'DEBUG (remove after OK): <br>' .$donate_sql. '<br>'; 
$res = mysql_query($donate_sql); 

echo 'Thanks ' .$first_name. ' ' .$last_name. '<br>'; 

} 
mysql_close($con); 
?> 

That's valua ATTR它!

+0

感謝您的幫助,但stil不起作用顯示代碼時回聲開始 – mitchnufc 2012-03-19 22:33:12

0

你需要給出一個name屬性來選擇:

<select name="first_Name"> 
<?php while ($rsNames= mysql_fetch_assoc($names_query)):?> 
<option value="<?php echo htmlspecialchars($rsNames['first_Name']).' '.htmlspecialchars($rsNames['last_Name']);?>"> [option displayed to the user here]</option> 
<?php endwhile;?> 
</select> 

,當然還有使用$ _POST數組,而不是$ _GET,因爲你使用POST方法。

+0

它會不會是名字和姓氏,並會使更改運行我所有的數據庫查詢 – mitchnufc 2012-03-19 21:24:02

+0

只需連接/寫入value =「」屬性中的兩個值 – 2012-03-19 21:26:52

+0

我迷失了last_Name – mitchnufc 2012-03-19 21:27:22

0

\請確保您選擇設置名稱,你必須在選項標籤

<select name="first_Name"> 

<otpion value="<?php echo $rsNames['first_Name'];?>"><?php echo $rsNames['first_Name'];?> 
     <?php echo $rsNames['last_Name'];?> 
</option> 

</select>