PHP ile MySQL veritabanı değeri değiştirin

3 Cevap php

Hey tüm, ben PHP kodu ile (mysql veritabanı) bir tablodaki bir değeri değiştirmek istiyorum. Ben 'onaylı' adlı tablosunda bir satır var ve "0", ayarlanabilir iki seçenek (onaylı değil) ve "1" (onaylı) vardır. Ben "1" "0" dan onaylı bir bireyi değiştirecek bir komut dosyası oluşturma.

Örneğin, 'pozisyon' adında farklı bir değeri vardır ve 'onaylı' onaylanan 'konumunu' veya onaylı ayarlar (onaylı 1 veya ayarlandığı 0). Bu yanlış ifadeli ise, ben daha net yapmak için çalışacağız.

Ben onun 'onaylanmış' veri tersi 0-1 geçti ve olmak var benim soru bireyin 'konum' değerini yapabilirsiniz sanırım.

Teşekkürler!

EDIT / GÜNCELLEME:

Burada bu özel tablo için dökümü bilgiler bulunuyor:

 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

ve ben onaylı (veya tersi) onaylı değil değiştirmek için burada bu kodu düzenlemek için çalışıyordu

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

Haha daha kafa karıştırıcı ise o, müthiş, ama üzgünüm yardımcı olursa.

EDIT: İşte ne var, ama boş bir sayfa alıyorum (Biliyorum hataları)

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

Onaylı tablodaki bir sütun, bir satır, gibi geliyor, çünkü yapmak için çalışıyoruz ne tamamen emin değilim. Eğer aşağıdaki gibi bir şey yapmak istedim:

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 göremiyorsanız eğer ben, sen mysql sorguları yürütme bazı yöntemi var varsayarak yaşıyorum. Ayrıca tablo adı ve pozisyon alan adları kullandığınızdan emin olun.

Evet. Eğer böyle bir şey yapacağını:

UPDATE table_name
SET approved=value
WHERE position=some_value

SQL ve PHP öğrenmek için iyi bir yer olduğunu W3Schools: http://www.w3schools.com/sql/default.asp

Ben yanlış yaptığımı anladım! İşte benim kod aslında ben (küçük aptal bağlantı hatası) düzeltmek için ihmal bir önceki sayfada bir şeydi, bu.

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

<? } ?>