2009-05-20 14 views
0

ちょっと、私はPHPコードを使って(mysqlデータベース内の)テーブルの値を変更したいと思います。テーブルに「承認済み」という行があり、「0」(承認されていない)と「1」(承認済み)の2つのオプションがあります。私は、 "0"から "1"に承認された個人を変更するスクリプトを作成しています。PHP経由でmysqlデータベースの値を変更

たとえば、「位置」と呼ばれる別の値があり、「承認済み」は「位置」を承認済みまたは未承認(承認済みが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> 
<? } ?> 
+0

表の説明は省略し、定義を示してください。 – Gleb

+0

空白のページ=ソースが完全に空白になっているか、何も表示されていませんか? –

+0

何も表示されず、セミコロンなどを忘れたときに起こります... –

答えて

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 
} 

this linkが表示されない場合、私は、あなたがMySQLのクエリを実行するいくつかの方法を持っていると仮定しています。また、テーブル名と位置フィールド名を使用することを確認してください。

+1

は、比較のために単一の等号「=」を使用します。「==」ではありません。 – duckyflip

+0

oops、typo。それをキャッチするためにありがとう。 –

1

はい。

UPDATE table_name 
SET approved=value 
WHERE position=some_value 

SQLを学習し、PHPがW3Schoolsのであるために良い場所:あなたのような何かをするだろうhttp://www.w3schools.com/sql/default.asp

+0

私はあなたの言及したサイトがPHPなどを学ぶ最悪のサイトの1つであると言います。何かあれば、w3fools.comをご覧ください。 – Lucio

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> 

<? } ?> 
関連する問題