2011-10-10 72 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个图像 - 全部都有标题和描述。 –

相关问题