2009-05-20 317 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> 

<? } ?>