2014-04-17 44 views
0

好吧,我不是在PHP的很好,但在努力学习尽可能多地。所以我用管理面板制作了网站。在管理面板中,我使用2个按钮显示数据库中的所有行 - “删除”和“编辑”。删除按钮正在工作,但我编辑有问题。因此,这里是我如何表现,通过按钮编辑一行

for ($i = $start; $i < $end; $i++) 
    { 
      // make sure that PHP doesn't try to show results that don't exist 
    if ($i == $total_results) { break; } 
      // echo out the contents of each row into a table 
     echo "<tr>"; 
     echo '<td><p>' . mysql_result($result, $i, 'id') . '</p></td>'; 
     echo '<td>' . mysql_result($result, $i, 'caption') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'name') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'alt') . '</td>'; 
     echo '<td>' . mysql_result($result, $i, 'title') . '</td>'; 
     echo '<td><a href="delete.php?id=' . mysql_result($result, $i, 'id') . '">Delete</a></td>'; 
     echo '<td><a href="edit.php?id=' . mysql_result($result, $i, 'id') . '">Edit</a></td>'; 

     echo "</tr>"; 
    } 

结果当我点击编辑页转到edit.php和URL与选择的图片的ID。例如(/edit.php?id=68)。下面是edit.php

<form action="" method="post" enctype="multipart/form-data"> 
      Choose category 
     <select name="img_category"> 
      <option value="1">Cars</option> 
      <option value="2">Animals</option> 
      <option value="3" >PC's</option> 
      <option value="4" >Sport</option> 
     </select><br/><br /> 
      Caption 
      <input type="text" name="caption" /><br /><br /> 
      Alt 
      <input type="text" name="alt" /><br /><br /> 
      Title 
      <input type="text" name="title" /><br /><br /> 
      <input type="submit" name="submit" id="submit" value="Edit" /><br /><br /> 
</form> 
<?php 
if (isset($_POST['submit'])) 
{ 
    require_once("../include/db.php"); 
    $id =$_POST['id']; 
    $caption = $_POST['caption']; 
    $title = $_POST['title']; 

    $query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

    $result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con)); 
} 
?> 

我希望能够编辑captionalt和图像的title。现在当我按'编辑'时,什么都不会发生。我肯定不是那么难,但对我而言是种。

+1

变化WHERE ID = 'ID' 到ID = '$ ID' –

+0

改变,但依然不改在MySQL – user3346678

+0

你有任何错误什么? –

回答

1

试试这个

<?php 
if (isset($_POST['submit'])) 
{ 
    require_once("../include/db.php"); 
    $id =$_GET['id']; 
    $caption = $_POST['caption']; 
    $title = $_POST['title']; 

    $query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

    $result = mysqli_query($con, $query) or die("Error in query: ".mysqli_error($con)); 
} 
?> 
+0

只是一个问题。我怎样才能加载这种形式与数据库填充字段。我的意思是什么时候加载也加载数据库中的'caption','title'? – user3346678

4

在你的SQL语句,你似乎并不在你的ID添加。

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = 'id'"; 

您应该添加$

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 

更新:

似乎没有在你的形式的ID字段。您尝试在POST中检索它,但没有这样的字段可从中检索数据。你应该通过表单或其他方式将id传递给查询。

UPDATE2:

正如其他人所说,要做到这一点最简单的方法是去是让你的ID从GET而不是POST。

更改

$id =$_POST['id']; 

$id =$_GET['id']; 
+0

已更改但仍不会更改mysql中的任何内容 – user3346678

+0

已更新我的帖子与一些更多的信息。 – L7Lynx

+0

但我通过'id'从前一页和'id'已经在我的网址? – user3346678

2

使用GET方法,从URL赶上ID

只是改变

$id =$_POST['id']; 

$id =$_GET['id']; 
+0

哦,我的......那就是问题所在。我虽然因为我通过前一页的ID,我不需要再次在这里传递它。 – user3346678

+1

你必须始终使用GET方法,同时从url中检索一些东西 – Dinesh

2

您试图使用$ _POST检索$ _GET值,这会使$ id变量为空。

更改$id =$_POST['id'];$id = $_GET['id'];

而且改变你的查询

$query = "UPDATE images SET caption = '$caption', title = '$title' WHERE id = '$id'"; 
2

形式的某个位置添加

<input type="hidden" name="id" value='<?=(int)$_GET['id'] ?>'/> 

有加:有一对夫妇的安全问题与您的代码。记住你的代码不是生产准备好的!但这不是你的问题,所以我不会去那个。

+0

是的,我知道这一点。只是想让它工作。我会尽力让它更安全。此页面仅适用于管理员(我),但仍然是。 – user3346678

+0

多数民众赞成在我认为......上帝的主意,使其更安全......我已经看到完全不安全的系统上线,因为服务器升级......所有有安全的默默无闻 – snitch182