2012-03-19 10 views
1

私は寄付をクリックすると、それがtest.phpという名前のPHPファイルにデータを投稿します。私はこれを最初の名前と姓をエコーするように試みていますが、最終的には動作していません。このPHPページでデータベース内のtotal_Donation行を更新するためのMySQLクエリを実行したいと考えています。ここに私のメインの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> 

です寄付私は$ 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

助けてくれてありがとうございますが、 – mitchnufc

0

あなたが選択するために、name属性を与える必要があります:あなたはPOSTメソッドを使用しているので、

<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を使用しています。

+0

それは姓と名ではないでしょうし、その変化は、私のデータベースquerys – mitchnufc

+0

のすべてを実行することは値だけで両方の値を書き込む/連結します=「」属性 –

+0

あなたが望むなら、私はLAST_NAME – mitchnufc

0

\あなたが選択のために名前を設定していることを確認し、あなたはオプションタグ

<select name="first_Name"> 

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

</select> 
関連する問題