2013-08-22 68 views
0

我有一個腳本顯示一個百分比欄,我打算將它用於我們的捐贈目標,以便用戶可以看到我們在特定月份需要多少錢。這是當前的代碼:然而如何提交捐贈目標百分比欄更新?

<style> 
.percentbar { background:#CCCCCC; border:1px solid #666666; height:25px; } 
.percentbar div { background: #28B8C0; height: 25px; border-right:1px solid black } 
</style> 
</head> 
<body> 
<?php 
include("config.php"); 
$data = mysql_query("SELECT * FROM donationgoal"); 
    while ($info = mysql_fetch_array($data)) { 
     if (isset($_POST['add'])) { 
    $add = mysql_real_escape_string($_POST['add']); 
      $total = $info['total'] + $add; 
     } 
    mysql_query("UPDATE donationgoal SET total = ".$total." "); 
      $value = $info['total']; 
    } 

     echo $value; 

// Testing numbers. Replace with your own. 
$max = 100; 
$scale = 2.0; 

// Get Percentage out of 100 
if (!empty($max)) { $percent = ($value * 100)/$max; } 
else { $percent = 0; } 

// Limit to 100 percent (if more than the max is allowed) 
if ($percent > 100) { $percent = 100; } 
?> 
<form method="post"> 
<input type="text" name="add" /> 
<input type="submit" /> 
</form> 
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;"> 
    <div style="width:<?php echo round($percent * $scale); ?>px;"></div> 
</div> 
Percentage: <?php echo $percent; ?>% 
</body> 

現在這工作完全正常(完全更新表),頁面刷新後提交,酒吧不改變之後。它會改變的唯一方法是我已經提交表單後手動刷新頁面。有沒有辦法使它在初始提交後會更新?

回答

0

那是因爲你的insert查詢是您select查詢後,你必須從mysql 代碼獲取數據之前插入新記錄會是這樣:

<style> 
.percentbar { background:#CCCCCC; border:1px solid #666666; height:25px; } 
.percentbar div { background: #28B8C0; height: 25px; border-right:1px solid black } 
</style> 
</head> 
<body> 
<?php 
include("config.php"); 
if (isset($_POST['add'])) { 
    $add = mysql_real_escape_string($_POST['add']); 
    mysql_query("UPDATE donationgoal SET `total` = `total` + ".$add." "); 
} 
$data = mysql_query("SELECT * FROM donationgoal"); 
    while ($info = mysql_fetch_array($data)) { 
      $value = $info['total']; 
    } 
     echo $value; 

// Testing numbers. Replace with your own. 
$max = 100; 
$scale = 2.0; 

// Get Percentage out of 100 
if (!empty($max)) { $percent = ($value * 100)/$max; } 
else { $percent = 0; } 

// Limit to 100 percent (if more than the max is allowed) 
if ($percent > 100) { $percent = 100; } 
?> 
<form method="post"> 
<input type="text" name="add" /> 
<input type="submit" /> 
</form> 
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;"> 
    <div style="width:<?php echo round($percent * $scale); ?>px;"></div> 
</div> 
Percentage: <?php echo $percent; ?>% 
</body> 

BTW:請請請停止使用mysql並改用mysqli

+0

啊我看,我得到它的工作買更新查詢後再放置另一個選擇查詢。這是否是最有效的方法呢? – user2566387

+0

哦,我喜歡這比我所做的更好。謝謝我欣賞 – user2566387

+0

您不必關心效率,因爲您必須關心安全可靠性,並且您可以通過使用'mysqli'並在代碼中不包含太多查詢來實現這兩種效果 – MaveRick