PHP 未定義の変数について
以前にも質問しましたが、新たに壁にぶつかってしまったので再度投稿させていただきます。
ToDoリストを作っており、予定を入力フォームからデータベースへ登録、表示することまではできました。
現在は、表示されている全ての予定レコードの右端に"更新"と"削除"のボタンを設置し、それぞれの動作を行いたいと考えております。
それぞれのボタンに<input type=hidden name=No value='.$row[No].'>と記述し、更新箇所を入力するフォームを別ファイルで用意してあります。
しかし"更新"ボタンを押しても、
Notice: Undefined variable: No in C:\××××××××××\input_update.php on line 17
データは削除済か、もしくは存在しません。
というエラーメッセージが出てしまいます。(※"データは削除済みか~"は自分で記述したメッセージです。)実際にデータはあるので、変数の受け渡しがうまくいってないと思うのですが・・・
調べると、「未定義の変数があるよ」という事なのでしょうが、未定義の変数というものが分かりません。
all_todo.php
<?php
$conn = mysql_connect("localhost","root","×××");
if($conn == false)
{die("MySQL 接続エラー");}
mysql_set_charset("sjis");
mysql_select_db("todo");
$sql="SELECT * FROM `todo`";
$todo_list=mysql_query($sql);
while($row=mysql_fetch_array($todo_list))
{
echo("<tr id='honbun'>");
echo("<td>"."<input id='c_change' type='checkbox' name='check' value='check'>".$row["済"]."</td>");
echo("<td id='No'>".$row["No"]."</td>");
echo("<td id='title'>".$row["タイトル"]."</td>");
echo("<td id='todo'>".$row["内容"]."</td>");
echo("<td id='limit'>".$row["期限"]."</td>");
echo("<td id='priority'>".$row["優先度"]."</td>");
echo("<form action=input_update.php method=post>");
echo("<input type=hidden name=No value='.$row[No].'>");
echo("<td><input type=submit value=更新></td>");
echo("</form>");
echo("<form action=input_update.php method=post>");
echo("<input type=hidden name=No value='.$row[No].'>");
echo("<td><input type=submit value=削除></td>");
echo("</form>");
echo("</tr>\n");
}
mysql_free_result($todo_list);
mysql_close();
?>
input_update.php
<?php
$conn = mysql_connect("localhost","root","×××");
if($conn == false)
{die("MySQL 接続エラー");}
mysql_set_charset("sjis");
mysql_select_db("todo");
$sql="SELECT `No`,`タイトル`,`内容`,`期限`,`優先度` FROM `todo` WHERE `No`='$No'";
$todo_list=mysql_query($sql);
if(!$row=mysql_fetch_array($todo_list))
{die("データは削除済か、もしくは存在しません。");}
echo "<form action=update.php method=post>";
echo "タイトル<input type=text name=タイトル value=\"" . $row["title"] . "\"> ";
echo "内容<input type=text name=内容 value=\"" . $row["todo"] . "\"> ";
echo "期限<input type=text name=期限 value=\"" . $row["limit"] . "\"> ";
echo "優先度<input type=text name=優先度 value=" . $row["priority"] . "> ";
echo "<input type=hidden name=id value=" . $id . ">";
echo "<input type=submit value=更新>";
echo "</form>";
mysql_free_result($todo_list);
mysql_close();
?>
というコードです。
私の推測では、
>{die("データは削除済か、もしくは存在しません。");}
というメッセージが表示されていることから、フォームからデータの受け渡しは出来ているのだと思います。ただ、意図した変数が渡されていないと思うのですが、フォームのvalue='.$row[No].'という記述に問題があるのか、はたまたname=Noの部分か、SELECT文の記述が悪いのかまったく分かりません。
どなたか知恵をお貸しください。
お願いいたします。
お礼
definedじゃなかったんですね。ありがとうございました。