1

我正在尝试为我的电视项目创建一个背板。MySql 数据库由两个表组成。“节目”和“季节”。

节目表由节目 ID(主键)、节目标题和日期组成。Seasons 表由Season ID(主键)、Show ID(外键)、Season、发布日期组成。

您在控制面板中看到的第一件事是数据库中以表格格式显示的所有节目。例如,如果您编辑“Dexter”,它将带您进入显示 dexter 季节的输入框的编辑页面。像第 1 季、第 2 季等……我有这种工作。我的意思是它在输入框中正确显示但是当我去提交它只是重定向回同一个编辑页面并且没有任何更新。

我的主 index.php 后面板中的代码允许您编辑:

<td><a href="edit.php?id=<?php echo $row['show_id']; ?>">edit</a></td>

来自edit.php的代码:

<?php
$playlist_id=$_GET['id'];
// this makes it so it grabs the season records that match the show id
$sql="SELECT * FROM seasons WHERE show_id='$show_id'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
?>



<table>
<form name="form1" method="post" action="">
<tr>
<td>
<table>
<tr>
<td align="center"><strong>Id</strong></td>
<td align="center"><strong>Season Name</strong></td>
</tr>

<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td align="center">
<input name="season_id[]" type="text" id="season_id" value="<?php echo $rows['season_id']; ?>">
</td>
<td align="center">
<input name="Season[]" type="text" id="Season" value="<?php echo $rows['Season']; ?>">
</td>
</tr>

<?php
}
?>

<tr>
<td></td>
<td></td>
<td colspan="4" align="right"><input type="Submit" name="Submit" value="Submit"></td>
</tr>
</table>
</td>
</tr>
</form>
</table>

<?php

$result1 = FALSE;
if (isset($_GET['Submit'])) {
for($i=0;$i<$count;$i++){
$sql1="UPDATE seasons SET Season='$Season[$i] WHERE Season_id='$Season_id[$i]'";
$result1=mysql_query($sql1);
}
}

if($result1){
header("location:update.php");
}
mysql_close();
?>

您可能想知道为什么我要编辑季节的名称,但一旦我克服了这个障碍,我最终会让它变得更复杂并添加更多字段。就像我说它显示正确但是当我点击提交时它只是重新加载页面并且没有任何变化。

4

2 回答 2

0

您正在发布数据,因此您需要将此 isset($_GET['Submit']) 更改为 isset($_POST['Submit'])

您在更新查询中有错误。在 $Season[$i] 之后缺少 '

$sql1="UPDATE seasons SET Season='$Season[$i]' WHERE Season_id='$Season_id[$i]'";

您可以使用 mysql_affected_rows() 检查行是否已更新。

if(mysql_affected_rows() == 1){
echo "Updated";
} else { echo "error"; }
于 2012-11-28T15:07:20.720 回答
0

您希望在发布页面时执行查询。您的 edit.php 页面应如下所示:

<?php
if (isset($_POST['submit'])) {
    $sql = "UPDATE `table_name` (`column1`, `column2`) VALUES (:value1, :value2)";
    $statement = $pdo->prepare($sql);
    $statement->bindParam(':value1', $_POST['some_field_name']);
    $statement->bindParam(':value1', $_POST['some_field_name']);
    $statement->execute();
    // record's updated; either redirect or display error message
}
?>
<!-- HTML of form here; will be shown if nothing’s been POSTed -->

其中“提交”是您提交按钮的名称,即<input type="submit" name="submit" value="Update" />.

您还应该使用PDO之类的东西而不是mysql_函数,因为这些函数现在已被弃用。

于 2012-11-28T15:20:41.913 回答