2014-10-01 149 views
1

我有一些代碼,我正在嘗試將其製作爲我的首頁的新聞Feed。到目前爲止,我不能讓更新工作。 Ps可以自由地清理代碼,並且爲實際使用,因爲這是版本1我沒有清理代碼。感謝JoshuaPhp Mysql更新

更新零件

if(isset($_POST['edit'])) 
    { 
    $checkbox = $_POST['checkbox']; 

    for($i=0;$i<count($_POST['checkbox']);$i++){ 

    $edit_id = $checkbox[$i]; 

     echo "<textarea name='editsavetext' id='editsavetext' rows='4' cols='50'>$edit_id</textarea>"; 
    }}; 

    if(isset($_POST['editsave'])){ 

    echo $editsavetext; 

    $editsavetext = $_POST['editsavetext']; 

    $sql='UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id'; 

    $result = mysql_query($sql); 

    if($result){ 
echo "<meta http-equiv='refresh' content='0; url=http://****' />";}}; 

對於富布拉德肖

那麼此刻的代碼不工作,因爲我需要系統能夠記住複選框是蜱,哪些正在使用$ edit_id因爲編輯它在保存時不記得結果,所以它不會影響任何事情。

if(isset($_POST['edit'])) 
{ 
$checkbox = $_POST['checkbox']; 

for($i=0;$i<count($_POST['checkbox']);$i++){ 

$edit_id = $checkbox[$i]; 

    echo "<textarea name='editsavetext' id='editsavetext' rows='4' cols='50'>$edit_id</textarea>"; 
}}; 

if(isset($_POST['editsave'])){ 

echo $editsavetext; 

$editsavetext = $_POST['editsavetext']; 

$sql="UPDATE `$tbl_name` SET home_show = '$editsavetext' WHERE home_show=':edit_id'"; 

$result = mysql_query($sql); 

if($result){echo "<meta http-equiv='refresh' content='0; url=http://****' />";}}; 
+0

如果你改變你的查詢'$ SQL =「UPDATE $ tbl_name SET home_show =「$ editsavetext'WHERE home_show ='$ edit_id'「;',它會起作用嗎? – 2014-10-01 09:03:24

+0

注意:'mysql_ *'函數已被棄用,並將從未來的PHP版本中刪除。你不應該使用它們來編寫新的代碼。改用'mysqli_ *'或PDO。 – 2014-10-01 09:04:32

回答

1

沒有通過所有這些挖,

'UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id' 

應該

"UPDATE `$tbl_name` SET home_show = '$editsavetext' WHERE home_show = $edit_id" 

,如果你有類似的代碼:

$a = "hi"; 

echo 'I say $a'; 

那就寫出來I say $a

,如果你有

echo "I say $a"; 

它會寫I say hi

此外,文本需要在SQL查詢語音標記。

然後,您需要查看SQL注入,因爲此代碼在使用時不安全,不能保護它。最後,你爲什麼使用mysql_query?閱讀文檔:http://php.net/manual/en/function.mysql-query.php - 請注意,它已被棄用。

enter image description here

+0

糟糕..'home_show ='$ edit_id''。我明白,你急切地想發佈你的答案。 ;) – 2014-10-01 09:04:16

+0

我不會那麼麻煩,因爲它是一個整數。 – 2014-10-01 09:05:34

+0

不,它沒有改變它 – user3818340 2014-10-01 09:11:01

0

你update語句似乎是錯誤的。
您正在使用單引號並在其中使用$edit_id。爲此使用雙引號。
試試這個(假設home_show是整數。) -

$sql="UPDATE $tbl_name SET home_show = $editsavetext WHERE home_show = $edit_id"; 
    ^                  ^

假設home_show列是VARCHAR

$sql="UPDATE $tbl_name SET home_show = '$editsavetext' WHERE home_show = '$edit_id'"; 
    ^        ^   ^    ^  ^^