php
  • html
  • mysql
  • 2012-12-19 106 views 0 likes 
    0

    所以我有這個代碼工作,所以它可以插入新聞到它的表,但問題是編輯新聞後,如果需要。新聞腳本插入新聞數據,但沒有編輯新聞

    我一直在嘗試不同的方式,但它似乎不是工作滿座。

    <? 
    if(!$id) 
    echo("Please choose a page to edit.."); 
    elseif($id==edit) 
    { 
    $select = mysql_query("select * from news where newsid = '$id'"); 
    $article = mysql_fetch_array($select); 
    ?> 
    <form action="edit-news.php?id=edited" method="post"> 
        Title:<br /> 
        <input name="readuser" type="text" value="<? echo("$article[title]");?>" size="70" /> 
    Article Content:<br /> 
    <textarea name="pageuser" cols="40" rows="6"><? echo("$article[text1]");?></textarea> 
        <br /> 
        <br /> 
        <input type="submit" value="Update article" /> 
    </form> 
    <? 
    } 
    elseif($page==edited) 
    { 
    $text1 = $_POST[pageuser]; 
    $title = $_POST[readuser]; 
    $updateit = mysql_query("update news set text1 = '$text1' AND title = '$title' where newsid = $id"); 
    echo("Article updated"); 
    } 
    ?> 
    

    我不再收到訪問該頁面時的錯誤消息(謝謝!!!)但它只是不編輯文章。

    +2

    [**在新的代碼,請不要使用'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://j.mp/PoWehJ)。 –

    +1

    謝謝NullPointer – user1915114

    +0

    格式化時,我已經看到了註釋'} // if($ submit)的結尾.'這不符合提供的代碼。關閉'}'屬於'while'或'elseif'。你也有多個'?>'。請提供完整的代碼。 –

    回答

    3

    一個值分配給你的文字輸入和文字區域,使他們顯示文章編輯:

    <input name="title" size="40" maxlength="255" value="<?php echo htmlspecialchars($title); ?>"> 
    
    <textarea name="text1" rows="7" cols="30"><?php echo htmlspecialchars($text1); ?></textarea> 
    
    <textarea name="text2" rows="7" cols="30"><?php echo htmlspecialchars($text2); ?></textarea> 
    

    也改變<?php echo $PHP_SELF ?>到:

    <?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?> 
    

    旁註:mysql_*是不推薦使用MySQLi或PDO和準備好的語句。您的查詢容易受到SQL注入的影響。速戰速決是:

    mysql_query("SELECT * FROM news WHERE newsid='" . (int)$_GET['newsid'] . "'",$connect); 
    

    而且mysql_real_escape_string()mysql_escape_string()更好,因爲後者不尊重的字符集。儘管如此,它們都不如預備好的語句更好。

    +0

    新代碼轉貼。請選擇它:)這也沒有伎倆:(我無望......我希望它編輯文章時,查看「edit-news.php?id = 11」 – user1915114

    +0

    具有諷刺意味'沒有幫助'不' t幫助我解決問題,它究竟做了什麼,它是否在查詢中獲取數據,而不是將它傳遞給窗體,它顯示OK但不更新? – MrCode

    +0

    它只是沒有當你去edit-news.php?id = 11 – user1915114

    0

    試試這個:

    UPDATE news SET title = '$title', dtime = NOW(), text1 = '$text1', text2 = '$text2' WHERE newsid = '$newsid' 
    
    +0

    重新發布的新代碼。請選擇它:)這也不能做到這一點: 'm hopeless ..我希望它在編輯文章時查看「edit-news.php?id = 11」 – user1915114

    +0

    什麼是'elseif($ id == edit)'?如果你希望id是一個表示新聞id的數字值('edit-news.php?id = 11'),那麼在你的表單中你必須使action屬性發送數據到同一頁面edit-news.php? id = <?php echo $ id;?>'否則ID丟失。如果突然id變成「編輯」或「編輯」,比在你的Ifs語句中你需要'if($ id ==「edit」)'elseif($ id ==「edited」)' $ id = $ _GET [「id」]'在頁面的某處? – Moseleyi

    相關問題