2011-10-10 102 views
-2

對,我希望這是這個特定項目的最後一個問題 - 它是一個個人日記項目,索引頁面中的代碼隨時都會迴應菜單欄,文章的div和包含滑塊的div的圖像。Mysql數據庫沒有通過cms更新我做了什麼?

我有兩個數據庫,一個是頁面,另一個是圖像,他們都有一個名爲「頁面順序」的列,可以幫助我指定哪些圖像轉到哪個頁面。

現在這些圖像有一個標題和說明,它的一切工作!

接下來的部分是界面,我做了一個頁面來CRUD頁面和CRUD的圖像,頁面一個完美的罰款和CRUDs數據庫條目。然而,即使回聲消息顯示「Databse updated」而沒有給出錯誤,圖像也不會更新,所以我認爲在我的代碼中出現了問題。

<?php 

include_once "scripts/connect_to_mysql.php"; 

$pid = preg_replace("/[^0-9]/", "/[^a-z]/", $_POST['pid']); // filter everything but numbers for security 

$sqlCommand = "SELECT * FROM images WHERE pageorder='$pid' ORDER BY id ASC"; 
$query = mysql_query($sqlCommand) or die (mysql_error()); 
$imageedit = ''; 
while ($row = mysql_fetch_array($query)) { 
    $id = $row["id"]; 
    $images = $row["images"]; 
    $title = $row["title"]; 
    $desc = $row["description"]; 
    $pageorder = $row["pageorder"]; 

    $imageedit .= "<table width='300'> 
    <tr>$id</tr> 
    <tr><img src='$images' width='204' height='153' /></tr> 
    <tr><textarea name='title' id='title' cols='30' rows='1'>$title</textarea></tr> 
    <tr><textarea name='description' id='description' cols='60' rows='1'>$desc</textarea></tr> 
    <tr>$pageorder</tr> </table>"; 
} 
mysql_free_result($query); 
?> 

和形式的詳情

<form id="form" name="form" method="post" action="administrator/page_images_parse.php" onsubmit="return validate_form ();"> 
<?php print $imageedit ?> 
<input type="submit" name="button" id="button" value="Submit Page Edit" /> 
<input name="pid" type="hidden" value="<?php echo $pid; ?>" /> 
    </form> 

當我去我的edit_index.php網頁,將問我要修改的內容頁,我告訴它的數量例如1,它會抓取所有與第1頁相關的圖像。當我更新任何標題或描述數據時,第1頁上將有18幅圖像不會進入數據庫。

所以,我認爲是有問題的 「page_images_parse.php」

驗證碼:

<?php 

include_once "../scripts/connect_to_mysql.php"; 


$pid = $_POST['pid']; 
$title = $_POST['title']; 
$desc = $_POST['description']; 


$query = mysql_query("UPDATE images SET title='$title', description='$desc' WHERE pageorder='$pid'") or die (mysql_error()); 

echo 'Operation Completed Successfully! <br /><br /><a href="index.php">Click Here</a>'; 
exit(); 
?> 

我認爲這是與WHERE pageorder = '$ PID' 功能的問題,但我嘗試了各種各樣的東西,但似乎沒有任何工作。

P.S.我知道關於php注入,但不需要它爲這個項目,因爲它是脫機的,個人的,沒有人會看到它!的

+0

有一個問題在那裏的某個地方? – Clive

+0

它不會通過我所做的編輯頁面更新圖像數據庫。這些頁面完美無瑕。 –

+0

如何一次編輯多個圖像,因爲while循環包含所有行的相同名稱和標識。例如:說明,標題 – mithunsatheesh

回答

0

代替:

$pid = preg_replace("/[^0-9]/", "/[^a-z]/", $_POST['pid']); 

可以使用

$pid = (int) $_POST['pid']; 

也對過濾mysql的注入數據

$query = mysql_query("SELECT * FROM images WHERE pageorder='".mysql_real_escape_string($pid)."' ORDER BY id ASC") or die (mysql_error()); 

編輯:

更新while循環:

$i=0; 
while ($row = mysql_fetch_array($query)) { 
    $id = $row["id"]; 
    $images = $row["images"]; 
    $title = $row["title"]; 
    $desc = $row["description"]; 
    $pageorder = $row["pageorder"]; 

    $imageedit .= "<table width='300'> 
    <tr>$id</tr> 
    <tr><img src='$images' width='204' height='153' /></tr> 
    <tr><textarea name='title[".$i."]' id='title[".$i."]' cols='30' rows='1'>$title</textarea></tr> 
    <tr><textarea name='description[".$i."]' id='description[".$i."]' cols='60' rows='1'>$desc</textarea></tr> 
    <tr>$pageorder</tr> 
    <input type='hidden' name='id[".$i."]' value='".$id."' /> 
    </table>"; 
    $i++; 
} 

和page_images_parse.php作爲

foreach ($_POST['id'] as $key => $id) 
{ 
    $pid = $id; 
    $title = $_POST['title'][$key]; 
    $desc = $_POST['description'][$key]; 
    $query = mysql_query("UPDATE images SET title='$title', description='$desc' WHERE id='$pid'") or die (mysql_error()); 
} 
+0

不!不工作。所有的圖像都有一個唯一的ID,也有一個頁面順序,第一頁有18個圖像,所有的頁面順序1與pid相對應。 那麼我怎麼會在{「更新圖像SET標題='$標題',描述='$ desc'WHERE pageorder ='$ pid'」} –

+0

你是否期待這樣的多行? while($ row = mysql_fetch_array($ query)){你的代碼 – mithunsatheesh

+0

我想更新數據庫中的多行,例如,第一頁有18個圖像 - 全部都有標題和描述。 –

相關問題