1

TVプロジェクトのバックパネルを作成しようとしています。私のMySqlデータベースは2つのテーブルで構成されています。「ショー」&「シーズン」。

ショーテーブルは、ショーID(主キー)、ショーのタイトルと日付で構成されます。Seasonsテーブルは、Season ID(Primary Key)、Show ID(Foreign Key)、Season、リリース日で構成されています。

コントロールパネルに最初に表示されるのは、データベースからのすべての番組を表形式で表示したものです。たとえば、「デクスター」を編集すると、デクスターの季節の入力ボックスを表示する編集ページが表示されます。シーズン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

ページがPOSTされたときにクエリを実行するとします。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 に答える
0

データを投稿しているので、このisset($ _ GET ['Submit'])をisset($ _ POST ['Submit'])に変更する必要があります

更新クエリでエラーが発生しました。$ Season[$i]の後に'がありません

$ sql1="UPDATEシーズンSETSeason='$ 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 に答える