2009-05-20 29 views
0

嘿,我想通過PHP代碼更改表(在MySQL數據庫中)的值。我在表格中有一行叫做「批准」,有兩個選項可以設置爲「0」(未批准)和「1」(批准)。我正在創建一個腳本,將更改從「0」批准到「1」的個人。通過PHP更改Mysql數據庫中的值

例如,有一個不同的值被稱爲'職位','批准'將'職位'設置爲批准或未批准(批准設置爲1或0)。如果這是錯誤的,我會盡量使它更清楚。

我想我的問題是我可以讓一個人的'位置'值有其'批准'的數據從0切換到1,反之亦然。

謝謝!

編輯/ UPDATE:

這裏是從垃圾堆裏的信息爲這個特定表:

CREATE TABLE `positions` (
    `posID` int(10) unsigned NOT NULL auto_increment, 
    `postitle` varchar(500) NOT NULL default '', 
    `addtitletext` varchar(35) default NULL, 
    `description` text NOT NULL, 
    `print_website` enum('1','2') NOT NULL default '1', 
    `userID` tinyint(4) unsigned NOT NULL default '0', 
    `submitted_on` datetime NOT NULL default '0000-00-00 00:00:00', 
    `approved_date` date NOT NULL default '0000-00-00', 
    `approved` enum('0','1') NOT NULL default '0', 
    PRIMARY KEY (`posID`) 
) ENGINE=MyISAM AUTO_INCREMENT=464 DEFAULT CHARSET=latin1; 

LOCK TABLES `positions` WRITE; 
/*!40000 ALTER TABLE `positions` DISABLE KEYS */; 
INSERT INTO `positions` (`posID`,`postitle`,`addtitletext`,`description`,`print_website`,`userID`,`submitted_on`,`approved_date`,`approved`) 
VALUES 

,我試圖在這裏修改此代碼,使其從沒有批准的變更批准(或反之亦然)

<? 
include('secure.php'); 
include('config.php'); 

if (isset($_POST['submitted'])) { 
foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } 
$sql = "UPDATE `positions` SET `approved` = '{$_POST['approved']}'"; 
mysql_query($sql) or die(mysql_error()); 
echo (mysql_affected_rows()) ? "Edited row.<br />" : "Nothing changed. <br />"; 
echo "<a href='list.php'>Back To Listing</a>"; 
} 
$row = mysql_fetch_array (mysql_query("SELECT * FROM `positions` WHERE `posID` = '$posID' ")); 




?> 

<form action='' method='POST'> 
<p><b>Approved:</b><br /><input type='text' name='approved' value='<?= stripslashes($row['approved']) ?>' /> 
<p><input type='submit' value='Edit Row' /><input type='hidden' value='1' name='submitted' /> 
</form> 

如果它有幫助,真棒,但對不起,如果它更混亂哈哈。

編輯:這是我有,但得到一個空白頁(錯誤,我知道)

<? 
include('secure.php'); 
include('config.php'); 
if (isset($_GET['posID'])) { 
$posID = (int) $_GET['posID']; 
if (isset($_POST['submitted'])) { 
foreach($_POST AS $key => $value) { $_POST[$key] = mysql_real_escape_string($value); } 
$sql = "UPDATE `positions` SET `approved` = '{$_POST['approved']}' WHERE `posID` = '$posID'"; 
mysql_query($sql) or die(mysql_error()); 
echo (mysql_affected_rows()) ? "Edited row.<br />" : "Nothing changed. <br />"; 
echo "<a href='list.php'>Back To Listing</a>"; 
} 

<form action='' method='POST'> 
<p><b>Approved:</b><br /><input type='text' name='approved' value='<?= stripslashes($row['approved']) ?>' /> 
<p><input type='submit' value='Edit Row' /><input type='hidden' value='1' name='submitted' /> 
</form> 
<? } ?> 
+0

不要描述你的表,只是顯示它的定義。 – Gleb 2009-05-20 17:45:12

+0

空白頁=源代碼是完全空白的還是隻是沒有顯示? – 2009-05-20 19:01:20

+0

只是沒有顯示,發生時,我忘記了分號等... – 2009-05-20 19:08:35

回答

4

我不完全知道你正在嘗試做的,因爲它聽起來像批准爲一列,不是一排,在桌子上。如果你想做一些類似如下:

function toggle_approved($position_id) { 
$query = "UPDATE positions SET approved = !approved WHERE posID = '$position_id'"; 
// execute the query here with your mysql_query() call 
} 

我假設你有執行的MySQL查詢的一些方法,如果看不到this link。還要確保你使用你的表名和位置字段名稱。

0

想通了我在做什麼錯了!這是我的代碼,它實際上是我在前一頁中忽略修復的東西(愚蠢的小鏈接錯誤)。

<? 
include('secure.php'); 
include('config.php'); 

if (isset($_GET['posID'])) { 
$posID = (int) $_GET['posID']; 
if (isset($_POST['submitted'])) { 
$sql = "UPDATE `positions` SET `approved` = '{$_POST['approved']}' WHERE `posID` = '$posID'"; 
mysql_query($sql) or die(mysql_error()); 
echo (mysql_affected_rows()) ? "Edited row.<br />" : "Nothing changed. <br />"; 
echo "<a href='list.php'>Back To Listing</a>"; 
} 
$row = mysql_fetch_array (mysql_query("SELECT `approve` FROM `positions` WHERE `posID` = '$posID' ")); 
//echo "<p><b>Department</p></b>"; 
//$query="SELECT deptname,deptID FROM depts"; 

//$result = mysql_query ($query); 
//echo "<select name=depts value=''>Department</option>"; 

//while($nt=mysql_fetch_array($result)){ 
//echo "<option value=$nt[deptID]>$nt[deptname]</option>"; 
/* Option values are added by looping through the array */ 
//} 
//echo "</select>"; 
//`department` = '{$_POST['department']}' 

?> 

<form action='' method='POST'> 
<p><b>Approved:</b><br /><input type='text' name='approved' value='<?= stripslashes($row['approved']) ?>' /> 
<p><input type='submit' value='Edit Row' /><input type='hidden' value='1' name='submitted' /> 
</form> 

<? } ?>