2012-12-28 24 views
0

這次我非常失望。我浪費了整整一天的時間,我無法幫助我。這是問題:如何接受或刪除任何待處理的帖子?

我需要接受或刪除掛起的作業。如果我接受,只有這樣它纔會在我的網站上發佈。請看圖片。 enter image description here

這裏我試着用這段代碼來處理這個問題。首先,如果有人發佈新工作,我會根據工作傳遞一個隱藏值= 0。

<input type="hidden" name="pending" value=0/> 

然後我將它存儲在我的數據庫中。

INSERT INTO job (Pending) VALUES ('$_POST[pending]'); 

然後我去圖片(上面)頁面接受或刪除。

echo "<a href='accept.php?accept=1'>ACCEPT</a> Or "; 
echo "<a href='accept.php?accept=0'>DELETE</a>"; 

接受Pending列後,將被替換爲0到1,因此它將被髮布。或刪除時間,作業將被簡單地從數據庫中刪除。

$accept=$_GET['accept']; 
if($accept==1){ 
mysql_query("UPDATE job SET Pending='$accept' 
WHERE ID='5'"); 
} 
else{ 
mysql_query("DELETE FROM job WHERE ID='5'"); 
} 

在'job'表中,我使用了一個名爲ID的主自動增量列。我把5放在身份證上。所以這段代碼只能用於ID爲5的待處理作業。所以我的問題在這裏。我怎樣才能用動態變量替換這5個?

欲瞭解更多信息,請點擊此處「PENDING JOBS」頁面的代碼;

$result1 = mysql_query("SELECT * FROM job ORDER BY ID DESC"); 
while($row1 = mysql_fetch_array($result1)) 
{ 
$id=$row1['ID']; 
$cat=$row1['Category']; 
$title=$row1['Title']; 
$type=$row1['Type']; 
$desp=$row1['Description']; 
$salary=$row1['Salary']; 
$day=$row1['Day']; 
$month=$row1['Month']; 
$year=$row1['Year']; 
$info=$row1['Contact']; 
$pending=$row1['Pending']; 

$now = time(); 
$last_date = strtotime("$year-$month-$day"); 
$datediff = $last_date - $now; 
$day_left=ceil($datediff/(60*60*24)); 
if($day_left>=0&&$pending==0){ 
echo "<div class=cat>Job field: $cat<br/></div>"; 
    echo "<div class=yel2>"; 
echo "This is a <b>$type time</b> job and we are looking for <b>$title</b>. $desp<br/>"; 
if ($salary!=0) echo "Salary: $salary<br/>"; 
echo "Contact info: $info<br/>Last date: $day-$month-$year"; 
if($day_left==0) 
echo "<br/><span class=ash><i>Today is the last day to apply</i><br/>"; 
else 
echo "<br/><span class=ash><i>$day_left day(s) left</i></span><br/>"; 
echo "<span class=acc><a href='accept.php?accept=1'>ACCEPT</a><span> Or "; 
echo "<span class=del><a href='accept.php?accept=0'>DELETE</a></span>"; 
+0

你爲什麼不存儲和一個div $ ID讀?? – mtariq

+0

只需將該ID作爲url變量傳遞給接受頁面? – Michael

+1

**警告!**您的代碼包含[SQL注入漏洞](http://en.wikipedia.org/wiki/SQL_injection) - 您將原始未過濾的未經驗證的用戶輸入直接傳遞給SQL字符串。 SQL注入[非常容易修復](http://stackoverflow.com/q/60174/168868)。考慮[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli),以便您可以使用[帶有參數化查詢的預準備語句](http: //en.wikipedia.org/wiki/Prepared_statement)。 – Charles

回答

2

只需將id與accept url一起傳遞即可。

echo "<span class=acc><a href='accept.php?id=$id&accept=1'>ACCEPT</a><span> Or "; 

可以使用

$post_id = $_GET['id']; 

搶accept.php腳本里面的ID的代碼需要變化不大

$accept = intval($_GET['accept']); // safe against sql-injections 
$post_id = intval($_GET['id']); 
if($accept==1){ 
mysql_query("UPDATE job SET Pending='$accept' 
WHERE ID='$post_id'"); 
} 
else{ 
mysql_query("DELETE FROM job WHERE ID='$post_id'"); 
} 
+0

Wow很棒的解決方案。我會試試這個。如果我成功了,我會告訴你。 –

+0

我非常感謝你。你是如此有幫助的人邁克爾。 :) –