大家好,我想通过 PHP 代码更改表(在 mysql 数据库中)中的值。我在表中有一行名为“已批准”,可以将其设置为两个选项,“0”(未批准)和“1”(已批准)。我正在创建一个脚本,它将批准的个人从“0”更改为“1”。
例如,有一个名为“position”的不同值,“approved”将“position”设置为已批准或未批准(approved 设置为 1 或 0)。如果措辞有误,我会尽量说得更清楚。
我想我的问题是我能否将单个“位置”值的“批准”数据从 0 切换为 1,反之亦然。
谢谢!
编辑/更新:
这是该特定表的转储信息:
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>
<? } ?>
最佳答案
我不完全确定您要做什么,因为听起来 approved 是表格中的一列,而不是一行。如果您想执行以下操作:
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 .还要确保使用表名和位置字段名。
关于php - 通过 PHP 更改 Mysql 数据库中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/889257/