Изменить значение в базе данных MySQL через PHP - PullRequest
0 голосов
/ 20 мая 2009

Привет всем, я хочу изменить значение в таблице (в базе данных mysql) через код PHP. У меня есть строка в таблице, которая называется «утверждено», и есть две опции, которые можно установить: «0» (не утверждено) и «1» (утверждено). Я создаю сценарий, который изменит индивидуальное одобренное от "0" до "1".

Например, существует другое значение, называемое «позиция», и «утверждено» устанавливает «положение» как утвержденное или не утвержденное (где утверждено - 1 или 0). Если это сформулировано неправильно, я постараюсь прояснить это.

Полагаю, мой вопрос заключается в том, могу ли я сделать так, чтобы отдельное значение "позиция" переключало свои "утвержденные" данные с 0 на 1 и наоборот.

Спасибо!

EDIT / 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> 
<? } ?> 

Ответы [ 3 ]

4 голосов
/ 20 мая 2009

Я не совсем уверен, что вы пытаетесь сделать, потому что это звучит как утвержденный столбец, а не строка в таблице. Если вы хотите сделать что-то вроде следующего:

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, если не видите эту ссылку . Также убедитесь, что вы используете имя таблицы и имена полей позиции.

1 голос
/ 20 мая 2009

да. вы бы сделали что-то вроде:

UPDATE table_name
SET approved=value
WHERE position=some_value

Хорошее место для изучения SQL и PHP - w3schools: http://www.w3schools.com/sql/default.asp

0 голосов
/ 21 мая 2009

понял, что я делаю не так! Вот мой код, это было что-то на предыдущей странице, которую я не смог исправить (глупая маленькая ошибка ссылки).

<? 
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> 

<? } ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...