• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ削除のスクリプト)

データ削除のスクリプト

yambejpの回答

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ようは構文が間違ってますってことですね。 1行目というのはSQLの1行目なのでおそらく select * from tfk where renban = $id です。 $idが渡されてないのでは? 念のためselect * from tfk where renban = '{$id}'; など明示的にしてみるのもよいかもしれません。 tfkテーブルがないとかrebanフィールドがないとか おそらくケアレスミスです。よく設定がまちがってないか 再チェックしてみてください

donkicco
質問者

お礼

tfkテーブルもrenbanフィールドも確かにありますが、何か他にまちがいがあるのかもしれません。もう一度よく見直してみます。 ありがとうございました。

donkicco
質問者

補足

やはりご指摘の通り、$idの受け渡しのためのリンクのコード(検索のスクリプト内)に半角空白があって、それがいけなかったことがわかりました。的確なアドバイス、ありがとうございました。またよろしくお願いします。

関連するQ&A

  • PHP&MySQLデータ削除のスクリプトについて

    はじめまして。 PHP、MySQL始めたばかりの初心者です。 この度、自力で解決出来なく、質問させて頂く事にしました。 現在、MySQL入門以前という参考書を見ながらデータベースを作っていました。削除スクリプトで、どうしても躓いておりまして何が原因が分からずじまいです。下記が呼び出しスクリプトです --------------------------ここから--------------------------- <?php extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); $sql = "select * from xxxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "検索データが見つかりませんでした。"; exit; } else { while($row = mysql_fetch_array($result)){ echo "<h2> " , $row["title"] , "</h2>"; echo "<p><font size=\"-2\">#", $row["id"] ," ●",$row["tourokubi"] ,"</font></p>\n"; echo "<p><div class=\"hon\">", nl2br($row["honbun"]), "</div></p>"; echo "<div class=\"key\">keywords: ", nl2br($row["keyword"]), "</div>"; $ukid=$row["id"]; echo "<center> <a href=\"j_sakujo1.php?i=$ukid\"><img src=\"sakujobutton.gif\" alt=\"削除ボタン\" border=0></a>  <a href=\"correct.php?i=$ukid\"><img src=\"shuseibutton.gif\" alt=\"修正ボタン\" border=0></a>  </center>"; } } ?> --------------------------ここまで--------------------------- そして削除スクリプトです --------------------------ここから--------------------------- <?php extract($_POST); extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); //MySQLレコード削除 if($kakunin=="確認"){ $sql = "delete from xxxxx where id = '{$id}'"; mysql_query($sql); echo "レコードの削除が完了しました"; exit; } //削除確認のためのフォーム $sql = "select * from xxxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else{ while($row = mysql_fetch_array($result)){ echo "<p>このレコードを削除します。</p>"; echo "<form action = \"j_sakujo1.php\" method = \"post\">"; echo "<p>登録日:"; echo $row["tourokubi"]; echo "</p>"; echo "<p>タイトル:"; echo $row["title"]; echo "</p>"; echo "<p>本文:"; echo $row["honbun"]; echo "</p>"; echo "<p>キーワード:"; echo $row["keyword"]; echo "</p>"; echo "<input type = \"hidden\" name = \"ren\" value =\""; echo $row["renban"]; echo "\">"; echo "<p><input type=\"submit\" name=\"kakunin\" value=\"確認\">"; echo "<input type=\"reset\" value=\"リセット\"></p>"; echo "</form>"; } } ?> --------------------------ここまで--------------------------- これで削除ボタンを押すと「該当データがありません。」だけ表示され 登録してあるデータがまったく表示されません。 どこで間違ったのか、どうかご指南お願い致します。

  • (MySQLで修正スクリプトがうまくいかず困っています。

    最近MySQLをはじめました、まだ初心者の者です。 MySQLデータベースで、修正用のスクリプトがうまく起動いたしません。自分なりに色々書籍やネット検索致しましたがどこが間違っているのか見出せません。 お手数ですが、どうか指南お願い致します。 リンクから呼び出すスクリプトと削除スクリプトの二点です。 -------------------(始)ここから明細スクリプト(始)--------------- <?php extract($_GET); mysql_connect('localhost','root','xxxx'); mysql_select_db('xxxx'); $sql = "select * from xxxx where id = '{$id}'"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "検索データが見つかりませんでした。"; exit; } else { while($row = mysql_fetch_array($result)){ echo "<h2> " , $row["title"] , "</h2>"; echo "<p><font size=\"-2\">#", $row["id"] ," ●",$row["tourokubi"] ,"</font></p>\n"; echo "<p><div class=\"hon\">", nl2br($row["honbun"]), "</div></p>"; echo "<div class=\"key\">keywords: ", nl2br($row["keyword"]), "</div>"; $row["id"]; echo "</p>"; echo "</p>"; echo "<a href=\"correct.php?id="; echo $row["id"]; echo "\">[修正する]</a>"; echo "<a href=\"j_sakujo1.php?id="; echo $row["id"]; echo "\">[削除する]</a><hr>"; } } ?> ------------------------(終)ここまで(終)------------------------ -------------------(始)ここから削除スクリプト(始)--------------- <?php extract($_POST); extract($_GET); mysql_connect('localhost','root','xxxxx'); mysql_select_db('xxxxx'); //修正レコード if($honbun<>""){ $sql = "update xxxxx set title='$title', honbun='$honbun', keyword='$keyword' where id = $id"; mysql_query($sql); echo "レコードの修正が完了しました"; exit; } // 修正ルーチン $sql = "select * from xxxxx where id = $id"; $result = mysql_query($sql); while($row = mysql_fetch_array($result)){ $tourokubi = $row["tourokubi"]; $title = $row["title"]; $honbun = $row["honbun"]; $keyword = $row["keyword"]; } echo "<form action=\"correct.php\" method=\"post\" >\n"; echo "<p>・日付<br>\n"; echo $tourokubi, "</p>\n"; echo "<p>・タイトル<br>\n"; echo "<input type=\"text\" name=\"title\" value=\"",$title, "\"size=60 ></p>\n"; echo "<p>・本文<br>\n"; echo "<textarea name=\"honbun\" rows=20 cols=70 >\n"; echo $honbun; echo "</textarea></p>\n"; echo "<p>・キーワード(スペース区切りで列記)<br>\n"; echo "<textarea name=\"keyword\" rows=2 cols=70 >\n"; echo $keyword; echo "</textarea></p>\n"; echo "<p><input type=\"hidden\" name=\"i\" value=\"", $i, "\">  "; echo "<p><input type=\"submit\" value=\"修正\">  "; echo "<input type=\"reset\" value=\"クリア\"></p>\n"; echo "</form>\n"; ?> -------------------(終)ここまで(終)---------------------- 修正ボタンを押すと、修正しました。と表示されるのですが、 なぜかデータは更新されておりません。 自分なりに調べましたが、原因がどうしても分かりません。 ご指南よろしくお願い致します。

  • データベース表示結果のデザイン

    データベースの全件検索結果の表示のデザインをしたいと考えているのですがうまくいきません。 PHPのソースは以下の通りです。 <?php mysql_connect('localhost','root','******'); mysql_select_db('AAAAAAAA'); $sql= "select * from ??????"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo " <br />"; echo $row["title"]; echo " "; echo $row["A"]; echo "-"; echo $row["B"]; echo " "; echo $row["C"]; echo " "; echo $row["D"]; echo " "; echo $row["E"]; echo " "; echo $row["F"]; echo " "; echo $row["G"]; echo "</p><hr />"; } } ?> この検索結果の1つ1つのデータをテーブルで囲んでechoで呼び出したA~Gまでの項目を<tr>や<td>で区切って表のような形にしたいのですがどのようにすればいいでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • MYSQL、PHPを使ってのデータとそのデータ数表示について

    よろしくお願いいたします。 このようなテーブルを組んでいます。  game        maker  マリオ      任天堂  カービィ     任天堂  FF        スクエニ   ドラクエ     スクエニ  ソニック     セガ このテーブルを使って、  任天堂(2)  スクエニ(3)  セガ(1) というように、メーカーが作ったゲームの数がカッコ内ででるように、makerを並べたいと思っています。 これはどのように組んだらよいのでしょうか? ちなみに、今はこのように組んで、(もちろんですが)失敗しています。。 ---------------------------------------------------------------- <?php mysql_connect('***','***','***'); mysql_select_db('***'); $sql = "select * from test"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo $row["maker"]; echo "<br />"; } } ?> ---------------------------------------------------------------- 初歩的な質問で大変恐縮ですが、よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • phpのページ送りについて

    既出の質問で大変恐縮ですが、どうしても自分の理解力が足りないため、教えてください。 phpでページ送りの機能をつけようと思います。 100件だけ取り出して、あとを 前のページへ|1|2|3|…|次のページへ のようにするのはどうしたらよいのでしょう。 いま組んでいるベースを書きます。 初心者で勉強をしているのですが頭が悪く、できれば下記に合わせて作っていただけますと幸いです。 ================================================================================== $sql2 = "select * from creater"; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); if($rows2 == 0){ echo "<p>該当データがありません。</p>"; } else { while($row2 = mysql_fetch_array($result2)){ echo "<p><a href=\"creater.php?createrid=",$row2["createrid"],"\">"; echo $row2["creater"]; echo "</a>"; echo "</p>"; } } ================================================================================== 実際のページは ttp://www.game-minzoku.jp/all-creater2.php です。 何とぞ、よろしくお願いいたします。

    • 締切済み
    • PHP
  • MYSQL→PHP→10件表示

    現在phpを勉強しているのですがどうしても分からないことがあり、 質問をさせて頂きました。 PHPとMYSQLを使い、プルダウンメニューから検索した結果を 10件表示をしていきたいのですが、どうしてもうまくいかず混乱しております。 どのなたかご存知の方、お伺いしても宜しいでしょうか? $PAGESIZE = 10; //ここにmysqlに接続するスクリプト extract($_REQUEST); if (!isset($page)) { $page = 1; } if(!empty($fld)) { //$fldに検索したい住所が入ってます。 $local = addslashes($fld); $where .= "add1 = '$fld' && "; } if(!empty($where)) { $where = substr($where, 0, -3); $where = "WHERE " . $where; } $sql = "select count(*) as cnt from ○○ ". $where; $rst = mysql_query($sql); $row = mysql_fetch_array($rst); $tcnt = $row["cnt"]; mysql_free_result($rst); $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "<B>$tcnt 件みつかりました。 " . "[" . ($PAGESIZE * ($page - 1) + 1) . "-"; if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "] を表示</B>"; } else { $pagehead .= "$tcnt] を表示</B>"; } $sql = "select * from ○○ ". $where. " order by renban desc limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>登録データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo "<br />"; echo $row["people"]; echo " "; echo $row["add1"]; echo $row["add2"]; echo "-"; echo $row["sta"]; echo " "; echo $row["tel"]; echo $row["url"]; echo $row["sejitu"]; echo $row["pr"]; echo "</p><hr />"; } } ?> <?= $pagehead ?> <?php mysql_free_result($result); mysql_close; $param_local = rawurlencode($local); if ($page > 1) { $body .= "<A href = '$PHP_SELF?page=" . ($page - 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "前の $PAGESIZE 件</A>"; } if ($totalpage > 1 and $page < $totalpage) { $body .= "<A href = '$PHP_SELF?page=" . ($page + 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "次の $PAGESIZE 件</A>"; } ?> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • MYSQL、PHP. データが入っていない個所を非表示にする方法

    よろしくお願いいたします。 現在、MYSQLとPHPを使ってゲームのデータベースのサイトを作っています。 ゲームのキャラクターなどを登録してあるのですが、キャラクター登録のないゲームのページもあります。 そういうとき、キャラクターがあるときには、 例 ================================================================ FF7に登場するキャラクター ================================================================ ・クラウド ・セフィロス ・コルネオ ・・・ というように出して、データ登録がない場合は(ここでいうと帯ごと)表示させないようにするにはどのようにしたらよいのでしょうか? ifを使うというのは何となく予想しているのですが、実際どのように組んだらよいものかさっぱりわからずに。。 ちなみに、現在の僕のサイトの該当箇所はこのように組んであります。(少し簡略化させていただきました) echo "<h3><div id =midashi>$○○ に登場するキャラクター</div></h3>"; $sql= "select * from game; $result = mysql_query($sql); $rows = mysql_num_rows($result); while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row3["chara"]; echo "</p>"; } 何か説明が足りない個所などございましたらがんがんおっしゃってください。 よろしくお願いいたします!

    • ベストアンサー
    • PHP
  • PHPとMySQLで作ったプログラムについて

    PHP(Ver.5.2.5)とMySQL(Ver.5.0.45)で住所録プログラムを作りました。住所は登録できるのですが、PHPで住所録を表示すると新規登録分が表示されません。住所録登録プログラムではmysql_close文でDBをちゃんと終了しています。コマンドラインクライアントのselect*from文では新規登録分が1回でちゃんと表示されることと、住所録表示プログラムでブラウザーの更新ボタンをクリックすると新規登録分が表示されることから、住所録表示プログラムがおかしいのではないかと思い、いろいろ試したのですが、変わりません。住所録表示プログラムのスクリプトの一部を以下に示します。 <?php mysql_connect('localhost','root'); *rootパスワードは設定していません。 mysql_select_db('lesson'); $sql = 'select * from jushoroku'; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>該当データがありません。</p>"; }else{ while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo ・・・ } } ?> 新規登録分を1回で表示するにはどこを直せば良いのでしょうか。どなたか教えてください。

    • ベストアンサー
    • PHP
  • PHP 10件表示 "前へ" "次へ"

    現在PHPとMYSQLを使用しております。  SQLでデータベースから$fldが一致したデータだけ抽出したデータを 10件ずつ表示させて”次へ”を押すと11~20件目が表示。 また”次へ”を押すと...といった感じに"次へ"と"前に"を表示させたいのですがどうしてもやり方がおもいつきません。  どなたかご存知の方ご教授お願いできませんでしょうか。 ここに今出来ていますスクリプトを記載させて頂きます。 extract($_REQUEST); if (!isset($page)) { $page = 1; } if(!empty($fld)) { //$fldに検索したい住所が入ってます。 $local = addslashes($fld); $where .= "add1 = '$fld' && "; } if(!empty($where)) { $where = substr($where, 0, -3); $where = "WHERE " . $where; } $sql = "select count(*) as cnt from ○○ ". $where; $rst = mysql_query($sql); $row = mysql_fetch_array($rst); $tcnt = $row["cnt"]; mysql_free_result($rst); $totalpage = ceil($tcnt / $PAGESIZE); $pagehead = "<B>$tcnt 件みつかりました。 " . "[" . ($PAGESIZE * ($page - 1) + 1) . "-"; if ($page < $totalpage) { $pagehead .= ($PAGESIZE * $page) . "] を表示</B>"; } else { $pagehead .= "$tcnt] を表示</B>"; } $sql = "select * from ○○ ". $where. " order by renban desc limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows == 0){ echo "<p>登録データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<p>"; echo $row["renban"]; echo " "; echo $row["tourokubi"]; echo "<br />"; echo $row["people"]; echo " "; echo $row["add1"]; echo $row["add2"]; echo "-"; echo $row["sta"]; echo " "; echo $row["tel"]; echo $row["url"]; echo $row["sejitu"]; echo $row["pr"]; echo "</p><hr />"; } } ?> <?= $pagehead ?> <?php mysql_free_result($result); mysql_close; $param_local = rawurlencode($local); if ($page > 1) { $body .= "<A href = '$PHP_SELF?page=" . ($page - 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "前の $PAGESIZE 件</A>"; } if ($totalpage > 1 and $page < $totalpage) { $body .= "<A href = '$PHP_SELF?page=" . ($page + 1) . "&tcnt=$tcnt&local=". $param_local. $param_category. "'>" . "次の $PAGESIZE 件</A>"; } ?> <?= $body ?> </body> </html>

    • ベストアンサー
    • PHP
  • 動的サイトを作ってみたのですが、うまくデータベースからデータが取得できません。。。

    よろしくお願いいたします。 趣味でゲームソフトのデータベースを作っています。 MYSQLを使って動的にデータを表示させるサイトです。 http://www.game-minzoku.jp/meisai.php?titleid=5362 例えばこのようにパラメータをつけてページを展開しているのですが、 この『?title=****』の数字をアドレスバー上で変更してほかのページを表示させようとすると、 該当データがありません。 がと出てしまいます。 これがようやくGoogleにインデックスされ始めてきましたが、自然検索から入ってもこのようなことが起こってしまって困っています。 自分で調べてはみたものの、独学で進めているため、どうやって解決したらよいか分からず困っています。 どなたかお力添えいただけますと幸いです。 問題のページのソースはこちらです。(cssなどの不要と思われる個所はけしてありますが、もし足りない箇所あればおっしゃっていただけますと幸いです) ================================================================ <?php extract($_GET); mysql_connect('****','****','****'); mysql_select_db('****'); mysql_query("set character_set_client=utf8"); mysql_query("set character_set_connection=utf8"); mysql_query("set character_set_results=utf8"); $sql = "select * from game,genre,hanbai,kaihatsu,hard where game.genreid=genre.genreid and game.hardid=hard.hardid and game.hanbaiid=hanbai.hanbaiid and game.kaihatsuid=kaihatsu.kaihatsuid and game.titleid =" . $titleid; $result = mysql_query($sql); $rows = mysql_num_rows($result); $title_name_sql = "select title from game where titleid =" . $titleid ; $res = mysql_query($title_name_sql); $title_name = mysql_result($res,0); echo "<title>"; echo "$title_name | ゲーム民族</title>"; echo "</head><body>"; echo "<a href=index.php>ゲーム民族</a>"; echo "<h1><font size=2>ゲーム民族は"; echo "$title_name"; echo "の詳細を網羅したデータベースのサイトです</font></h1>"; echo "<p><a href=index.php>TOP</a> > $title_name</p>"; echo $title_name の基本情報; if($rows == 0){ echo "<p>該当データがありません。</p>"; } else { while($row = mysql_fetch_array($result)){ echo "<a href=",$row["url"],">"; echo "<img src=",$row["img"]," alt=",$row["title"],">"; echo "</a>"; echo "<table border=1 height=40 cellpadding=2 cellspacing=2 width=800>"; echo "<tr><td>タイトル</td><td>"; echo $row["title"]; echo "</td></tr>"; echo "<tr><td>発売元</td><td>"; echo "<p><a href=\"maker.php?hanbaiid=",$row["hanbaiid"],"\">", $row["hanbai"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>開発元</td><td>"; echo "<p><a href=\"developer.php?kaihatsuid=",$row["kaihatsuid"],"\">", $row["kaihatsu"] ,"</a></p>\n"; echo "</td></tr>"; echo "<tr><td>機種</td><td>"; echo $row["hard"]; echo "</td></tr>"; echo "<tr><td>発売日</td><td>"; echo $row["hatsubai"]; echo "</td></tr>"; echo "<tr><td>ジャンル</td><td>"; echo "<p><a href=\"genre.php?genreid=",$row["genreid"],"\">", $row["genre"] ,"</a></p>\n"; echo "</td></tr>"; $sql2= "select * from game,title_creater,creater,roll where game.titleid=title_creater.titleid and title_creater.createrid=creater.createrid and title_creater.rollid=roll.rollid and game.titleid = " . $row["titleid"]; $result2 = mysql_query($sql2); $rows2 = mysql_num_rows($result2); while($row2 = mysql_fetch_array($result2)){ echo "<tr><td>クリエーター</td><td>"; echo $row2["creater"]; echo $row2["roll"]; echo "</td></tr>"; } } } ?> </body></html> ================================================================ 本当に見にくい意味不明のソースで申し訳ありませんが、よろしくお願いいたします!

    • ベストアンサー
    • PHP