MYSQLのエラーが解消できない

このQ&Aのポイント
  • 『基礎からのmysql』という本でMYSQLの勉強をしていますが、18-03という問題でエラーが発生しています。
  • エラーメッセージにはスペルミスなどがなく、問題がどこにあるのかわかりません。
  • データベースやテーブルの問題ではないと思われます。ご教示いただけると助かります。
回答を見る
  • ベストアンサー

MYSQLのエラーが解消できない。

ただいま『基礎からのmysql」という本で、MYSQLの勉強をしています。 本の中の、18-03という問題で <?php $s=mysql_connect("localhost","root","PASS") or die("失敗です"); print "成功しました。<br />"; mysql_select_db("db1".$s); mysql_query("INSERT INTO tb1 VALUES('k888','エスキュ',25)"); $re=mysql_query("SELECT * FROM tb1"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print ":"; print $kekka[1]; print ":"; print $kekka[2]; print "<br />"; } mysql_close($s); ?> このような文章があるのですが、うまく動きません。 ----------------------------------------------- 成功しました。 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\sounyu_hyouzi.php on line 9 ----------------------------------------------- ↑のエラーを返すのですが、 スペルミスなどはなく、さっぱり原因がわかりません。 line9ということなので、 while($kekka=mysql_fetch_array($re)){ に問題がありそうな気もするのですが、見当もつきません。 ちなみに、 コマンドプロンとで、SELECT * FROM tb1をやると +------+-----------+------+ | bang | nama | tosi | +------+-----------+------+ | A101 | SATOU | 40 | | A101 | SATO | 40 | | A101 | NAKAGAWA | 40 | +------+-----------+------+ と表示され、 show databases;でも +--------------------+ | Database | +--------------------+ | information_schema | | cdcol | | db1 | | db21 | | db511 | | mysql | | performance_schema | | phpmyadmin | | test | | webauth | +--------------------+ このように表示されますので、データベースやテーブルの問題ではないのかと思います。 なにかピンとくる方おられましたらよろしくおねがいします。

  • MySQL
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

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

>mysql_select_db("db1".$s); mysql_select_db("db1",$s); じゃないの?

satisfied999
質問者

お礼

できましたー ありがとうございます。 感謝です。

関連するQ&A

  • MySQLのレコードを逆向きに並べる方法は?

    MySQLのレコードを逆向きに並べる方法は? MySQLを使って、掲示板を作ろうとしているのですが、 “db1”というデータベースに、“tbk”というテーブルを作り、 “bangou”というフィールドで、AUTO_INCREMENTで番号をふり、 下記のように、番号順にレコードをプリントしているのですが、 <?php $s=mysql_connect("localhost","root","パスワード"); mysql_select_db("db1"); $re=mysql_query("select * from tbk order by bangou"); while($kekka=mysql_fetch_array($re)){ print "<hr />"; print $kekka[0]; print "<br />"; print $kekka[1]; print "<br />"; print $kekka[2]; print "<br />"; print $kekka[3]; print "<br />"; } mysql_close($s); ?> このように、番号の若い順にレコードをプリントするのではなく、 番号(“bangou”)の古い順にレコードをプリントするようにするには、 どうすれば良いでしょうか?

  • データベースの選択エラー

    次のmysql文を実行しているのですが、no database selectedと出てしまいます。 データベースのデータはphpmyadminを利用しています(添付画像参照) データベース名をzから始まるサーバー名のようなものを除いたものにしても ダメです。アドバイスいただけませんでしょうか。 (下の分の前後にはサーバーへの接続と切断のリクエストが入り、どちらも 無事接続、切断されています) mysql_select_db("z****_data1"); $re=mysql_query("SELECT * FROM simple_board ORDER BY bang"); echo mysql_error($s); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print " : "; print $kekka[1]; print " : "; print $kekka[2]; print "<br />"; }

  • PHPでMySQLのデータを2次元配列に格納する

    PHPの本に $r = mysql_query("SELECT * FROM tb;"); while ($row = mysql_fetch_array($r)){ print "{$row['id']}{$row['title']}<BR>"; } とあったのですが1行ずつしか保存できないので 2次元配列row[][]で while ($row[] = mysql_fetch_array($r)){ } foreach($row as $v){ print "{$v['id']}{$v['title']}<BR>"; } このようにコーディングしたところ 一応うまく表示されたのですが、問題はないですか? もし普通はこういう風にするみたいなやり方があれば 教えて欲しいです。

    • ベストアンサー
    • PHP
  • mysql結果を使ってもう1度mysql検索

    DB(mysql)とプログラムが以下のようにあります。 <?php /////////////////テーブルAを検索//////////////////////// $db = mysql_connect("***","***","***"); mysql_select_db("*****",$db); $result = mysql_query("select * from tableA where day = 0601",$db); if ($myrow = mysql_fetch_array($result)) { do { printf("<font color=\"blue\">$myrow[name]$myrow[day]</font><br>"); } while ($myrow = mysql_fetch_array($result)); } else { echo ""; } ////////結果を使ってテーブルAをもう1度検索///////////// $db = mysql_connect("***","***","***"); mysql_select_db("*****",$db); $result = mysql_query("select * from tableA where sports = '$myrow[day]'",$db); if ($myrow = mysql_fetch_array($result)) { do { printf("<font color=\"green\">$myrow[mise]$myrow[name]</font><br>"); } while ($myrow = mysql_fetch_array($result)); } else { echo ""; } ?> テーブルA name | day | sports | A君 | 0511 | バスケット | A君 | 0601 | サッカー | B君 | 0601 | テニス | B君 | 0503 | 水泳 | C君 | 0602 | 競歩 | C君 | 0512 | 乗馬 | dayが0601のA君とB君のsports全部を結果として表示したいのですが、エラーが出たりして思ったようにはできませんでした。 $resultなどが重複してしまうらしいのです。 A君 「バスケット・サッカー」 B君 「テニス・水泳」 と、するにはどうすればいいのでしょうか?よろしくお願いしますm(_ _)m

    • 締切済み
    • PHP
  • 配列に配列を足すことはできるか?

    PHPを使ってMYSQLのデータを吐き出すプログラムを作っています。 $re=mysql_query(SQL命令1); でDBに命令し $kekka=mysql_fetch_array($re) で、配列に代入 $re=mysql_query(SQL命令2); でDBの別テーブル(データ型やカラム数は同じ)に命令し $kekkaに情報を足すということがしたいのですが、どのように書けば$kekkaにデータが蓄積されていくのでしょうか?

    • ベストアンサー
    • PHP
  • PHPでMySQLのレコードを削除したい

    現在「基礎からのMYSQL」という本でXAMPPを導入しMySQL,PHPの基礎を勉強中です。 (mysql_query() を初めて学習中です。) 例にならってスクリプトを書いてみたのですが、MySQL内にあるレコードを削除するためのスクリプトがうまく作動しません。 (SELECT, INSERT, SEARCH は正常に作動します。DELETEだけがなぜかうまくいきません。) ApacheとMySQLは起動しています。 考えられる原因をおしえていただけませんでしょうか。よろしくおねがいいたします。 ソースコードは下記のとおりです。 ★HTML(トップページ) //メッセージ表示のスクリプトを呼び出すフォーム <form method="post" action="kantan_select.php"> メッセージを表示します<br> <input type="submit" value="メッセージ表示"> </form> //挿入のスクリプトを呼び出すフォーム <form method="post" action="kantan_insert.php"> 名前を入力してください<input type="text" name="a1"><br> メッセージを入力してください<input type="text" name="a2" size=150><br> <input type="submit" value="送信"> </form> //☆☆☆削除のスクリプトを呼び出すフォーム☆☆☆ <form mothod="post" action="kantan_delete.php"> 削除番号<input type="text" name="b1"><br> <input type="submit" value="削除番号送信"> </form> //検索のスクリプトを呼び出すフォーム <form method="post" action="kantan_search.php"> 検索キーワード<input type="text" name="c1"><br> <input type="submit" value="検索開始"> </form> ★レコード削除のPHPスクリプト <?php $s=mysql_connect("localhost","root","パスワード") or die("接続失敗"); print "接続しました<br>"; mysql_select_db("db1"); $b1_d=$_POST["b1"]; mysql_query("delete from tbk where bang=$b1_d") ; $re=mysql_query("select * from tbk order by bang"); while($kekka=mysql_fetch_array($re)){ print $kekka[0]; print ":"; print $kekka[1]; print ":"; print $kekka[2]; print "<br>"; } mysql_close($s); print "<br><a href='kantan.html'>メニューに戻る</a>" ?> <環境> Windows 7 XAMPP導入するための付属CD-ROMの内容  ・Apache(HTTPD2.2.6 + Openssl0.9.8e)   ・MySQL(5.0.45)  ・PHP(5.2.4)  ・PHP(4.4.7)  ・phpMyAdmin(2.11.1)  ・Zend Optimizer

    • 締切済み
    • PHP
  • mysqlのスマートな書き方

    MySQL5.1とPHP5を使っています。 phpからmysqlのtestテーブルにアクセスして点数順に生徒名一覧を作成したいと思っています。 イメージとしてはこのような感じです。○○○は名前になります。 90点以上 ○○○ ○○○ 80点以上 ○○○ ○○○ ○○○ 70点以上 ○○○ ○○○ ○○○ ○○○ このような一覧を表示するため、下記のように作成したところ上記のような表示をしてくれました。 しかしながら、同じmysql_queryを何度も使っていますし、DBに負担が掛かりそうな気がします(本当に負荷があるのかは分かりませんが・・・) もっとスマートな書き方はないものでしょうか。 よろしくお願い致します。 echo "90点以上"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if ($res['tensu'] >= 90){ echo $res['name']; echo "<br>" ; } } echo "80点以上~90点未満"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if($res['tensu'] >= 80 and $res['tensu'] < 90 ){ echo $res['name']; echo "<br>" ; } } echo "70点以上~80点未満"; $rs = mysql_query("select * from test where kamoku = '1' order by tensu desc LIMIT 0, 100;",$conn); while($res = mysql_fetch_array($rs, MYSQL_ASSOC)){ if($res['tensu'] >= 70 and $res['tensu'] < 80 ){ echo $res['name']; echo "<br>" ; } }

    • ベストアンサー
    • MySQL
  • PHP+MySQLの間違い探し

    PHP+MySQLのプログラムなのですが Parse error: syntax error, unexpected ')' in C:****.php on line 47 が出ました。47行目を含むif文を見ても()の数は合ってて何所が間違ってるのかわかりません>< よろしくお願いします。 <?php function delta($c,$a){ if(((strcmp($c,'c0') == 0) && ($a == 0)) || ((strcmp($c,'c50') == 0) && ($a == 100)) || ((strcmp($c,'c100') == 0) && ($a == 50)) || ((strcmp($c,'c100') == 0) && ($a == 100))) return 'c0'; else if(((strcmp($c,'c0') == 0) && ($a == 50)) || ((strcmp($c,'c50') == 0) && ($a == 0))) return 'c50'; else // else if(((strcmp($c,'c0') == 0) && ($a == 100)) || ((strcmp($c,'c50') == 0) && ($a == 50)) || ((strcmp($c,'c100') == 0) && ($a == 0)) return 'c100'; } function lambda($c,$a){ if(((strcmp($c,'c0') == 0) && ($a == 0)) || ((strcmp($c,'c0') == 0) && ($a == 50)) || ((strcmp($c,'c0') == 0) && ($a == 100)) || ((strcmp($c,'c50') == 0) && ($a == 0)) || ((strcmp($c,'c50') == 0) && ($a == 50)) || ((strcmp($c,'c100') == 0) && ($a == 0))) return 'null'; else if(((strcmp($c,'c50') == 0) && ($a == 100)) || ((strcmp($c,'c100') == 0) && ($a == 50))) return 'juice'; else // else if((strcmp($c,'c0') == 100) && ($a == 100)) return 'juice_50'; } $input=$_GET['input']; $mylink=mysql_connect("localhost", "student", "student"); mysql_select_db("mydb", $mylink); $myresult=mysql_query("select * from at3",$mylink); while($myrow=mysql_fetch_array($myresult)){ $i=$myrow[0]; $state=$myrow[3]; } $del = delta($state, $input); $lam = lambda($state, $input); $i++; mysql_query("insert into at3 values($i,$input,'$lam','$del')",$mylink); //mysql_query("insert into at3 values($input,'$lam','$del')",$mylink); print "<table border=4>"; print "<caption class='capbig'>Vending machine</caption>"; print "<tr><th>id</th><th class='left'>input</th><th class='center'>output</th><th class='right'>state</th></tr>"; $myresult=mysql_query("select * from at3",$mylink); //$myresult=mysql_query("select * from grade order by id asc",$mylink); while($myrow=mysql_fetch_array($myresult)){ print "<tr><td align=right>".$myrow[0]."</td><td align=right class='left'>".$myrow[1]."</td><td align=right class='center'>".$myrow[2]."</td><td align=right class='right'>".$myrow[3]."</td></tr>"; } print "</table>"; $myresult=mysql_query("select sum(input) from at3",$mylink); while($myrow=mysql_fetch_array($myresult)){ $sales=$myrow[0]; } $myresult=mysql_query("select count(input) from at3 where input='50'",$mylink); while($myrow=mysql_fetch_array($myresult)){ $coin50=$myrow[0]; } $myresult=mysql_query("select count(input) from at3 where input='100'",$mylink); while($myrow=mysql_fetch_array($myresult)){ $coin100=$myrow[0]; } $myresult=mysql_query("select count(output) from at3 where output='juice_50'",$mylink); while($myrow=mysql_fetch_array($myresult)){ $output50=$myrow[0]; } $myresult=mysql_query("select count(output) from at3 where output='juice'",$mylink); while($myrow=mysql_fetch_array($myresult)){ $juices=$myrow[0]; } $coin50=$coin50-$output50; $sales=$sales-$output50*50; $juices=$output50+$juices; print "Total sales: ".$sales."<br>"; print "Number of sold juices: ".$juices."<br>"; print "Number of 50 coin: ".$coin50."<br>"; print "Number of 100 coin: ".$coin100."<br>"; //$myresult=mysql_query("select max(score), name from grade",$mylink); //while($myrow=mysql_fetch_array($myresult)){ // print "<tr><th class='left'>Max.</th><td align=right class='center'>".$myrow[0]."</td><td class='right'>".$myrow[1]."</td></tr>"; //} mysql_free_result($myresult); mysql_close($mylink); ?>

    • 締切済み
    • PHP
  • mysqlからphpに表示ですべての項目を出したい

    phpとmysqlの勉強をしているのですが、出したい項目がでてきてくれません。 今mysqlでidとnameとpriceの項目を作っているのですが、以下だとどうしてもnameしか出てきてくれません。 どうすれば3つの項目がでてくれますでしょうか? よろしくお願いします。 <?     mysql_connect('localhost' , 'root' , '') or die(mysql_error());     mysql_select_db('db1'); mysql_query('SET NAMES UTF8'); $sql="SELECT * FROM syouhin"; $res=mysql_query($sql); $options=""; while($row = mysql_fetch_array($res,MYSQL_ASSOC)){ $options.="<input type=\"radio\" name=\"syouhin1\" value='{$row['id']}' checked>        {$row['name']}\n<br>"; } $select="{$options}</select>\n";     print $select; ?>

    • ベストアンサー
    • PHP
  • PHP MySQLでエラーがでてしまいます。

    PHP MySQLからデータを取得したいのですが、以下のエラーが出てしまい原因が分かりません。 詳しい方お願い致します。 <b>Warning</b>: json_encode() expects exactly 1 parameter, 2 given in <b>/home/users/2/***.**-********/web/****************/php/seupPharmacyData.php</b> on line <b>21</b><br /> エラーが出るコードは以下になります。 <?php include "db.php"; $sql = "SELECT * FROM user_data"; $query = mysql_query($sql, $db) or die("クエリの送信に失敗しました。<br />SQL:".$sql); $result= array(); while ($row = mysql_fetch_object($query)) { $result[] = array( 'name1' => $row->name1, 'name2' => $row->name2, 'name3' => $row->name3, 'id' => $row->id, ); } //jsonとして出力 header('Content-type:application/json; charset=UTF-8'); echo json_encode($result,JSON_UNESCAPED_UNICODE); ?>

    • ベストアンサー
    • PHP