プロが教える店舗&オフィスのセキュリティ対策術

初心者です。
いろいろ検索して改善していったつもりですが、なぜ動かないのかどうしてもわからないところがあったので質問させていただいてます。

/* サーバーへの接続 */
$link=mysql_connect($server,$user,$passwd);
/* データベース内のテーブルの名前を$tablesに配列で格納 */
$STS = "SHOW TABLE STATUS";
$mytables = mysql_query($STS);
while($r = mysql_fetch_array($mytables, MYSQL_ASSOC)){
$tables[] = ($r["Name"]."<br>\n");
}
/* 全テーブルのレコードを全てプリント */
foreach($tables as $value){
$results = mysql_query("select * from " . $value, $link);
while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
print_r($row);
print("<br>\n");
}
}
mysql_close($link);


foreachの部分を

for($i = 0; $i < 2 /*$tables[$i] != 0*/; $i++){
$results = mysql_query("select * from " . $tables[$i], $link);
$row = mysql_fetch_array($results, MYSQL_ASSOC);
print_r($row);
}

でもやってみました。


これを利用して、何とか表形式でデータベースのテーブルのレコードをwebページに出力させようと思っています。
実行するとprint_r($row)の出力がでず、いろいろ試してみた結果、$resultsもしくは$rowに問題があることがわかりました。
var_dump($row); でNULLが出力されました。
var_dump($results); もやったのですが、うろ覚えなのでここには書きません。
$results = mysql_query("select * from gutaiteki_table", $link);
としたら動いたので、select * from の後に変数を続けているからだめなのかなと思いましたが、私にはどうにもしようがありません。

これを正常に動作させる方法、他にうまいやり方があればその方法を教えてほしいです。
(私はデバッグのやり方がわからないので、「改変してwebのページを更新する」というのを繰り返してプログラムを作成していますが、他に方法があればそれも併せてご意見ほしいです。これは余裕があったらで構いません。)

A 回答 (1件)

データベースの選択をしていないのが気になります。


ただし、「mysql_select_db」は非推奨のようですね。
http://www.php.net/manual/ja/function.mysql-sele …
    • good
    • 0
この回答へのお礼

すみません。これは明記しておくべきことでしたが、<?phpや$passwdとかといっしょに省いてしまっていました。これを機に、これからはできる限り正確に伝えていくよう心掛けさせてもらいます。

mysql_select_dbでやりました。非推奨とのことですので確かに気になりますが、具体的にデータベース内のテーブル名を直接入力してプログラムを作成した時には、確かにそれに見合った結果を返してくれました。だから問題ないと思うのですが・・・

ご回答ありがとうございます!

お礼日時:2012/06/17 01:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!