人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて次の2つの質問にお答えください。

質問?
スクリプト?と同じ働きをするように、ユーザー定義関数を使って、
スクリプト?を作成しましたが、うまくいきません。
どうやったらよいか教えてください。
なお、スクリプト?を実行すると無限ループしてしまうのでご注意ください。

質問?
「"select * from site"」の「site」を定数にしたいと思い、
「define('TABLES','site');」と定義づけて、
「"select * from "."TABLES"としたのですがうまく行きません。
どうやったらよいか教えてください。


スクリプト?
$db = @mysql_connect(SERVER,USER,PASSWD);
mysql_select_db(DB_NAME);
$result = mysql_query("select * from site");

while ($row = mysql_fetch_array ($result,MYSQL_ASSOC)){
foreach ($row as $val){
echo "<br>".$val;}}


スクリプト?
(注)実行すると無限ループになります。
function mysql_prepared(){
$db = @mysql_connect(SERVER,USER,PASSWD);
mysql_select_db(DB_NAME);
$result = mysql_query("select * from site");
return $result;
}

while ($row = mysql_fetch_array (mysql_prepared(),MYSQL_ASSOC)){
foreach ($row as $val){
echo "<br>".$val;
}}

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:as dB echo PHP SELECT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● JULY
●35ポイント

質問?:

while ($row = mysql_fetch_array (mysql_prepared(),MYSQL_ASSOC)){

foreach ($row as $val){

echo "
".$val;

}}

mysql_prepared がループの度に実行され、毎度、新しく mysql の接続を

作っているために、無限ループに陥っているのでしょう。

while ループの前で一度、mysql_prepared の戻り値を変数に保存して、

スクリプト?のような呼び出し方にする必要があります。

質問?:

define で定義したものに対して、「"」でくくる必要はありません。

"select * from "."TABLES" では「TABLES」という文字列をつないでいる

ことになります。"select * from " . TABLES で、define した内容の

文字列が繋がります。

◎質問者からの返答

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


質問?うまくいきました。

質問?について、いただいたご回答を元にいろいろ考えてみたのですが、

どうやったら良いかわかりませんでした。

どのように書き直せばよいか教えていただけませんでしょうか?

本来ならこの説明だけで理解すべきなのでしょうが、なにぶん未熟者ですのでよろしくお願いします。


2 ● wizemperor
●35ポイント

2です。

function mysql_prepared(){
$db = @mysql_connect(SERVER,USER,PASSWD);
mysql_select_db(DB_NAME);
$result = mysql_query("select * from site");
return $result;
}


$result = mysql_prepared();

while ($row = mysql_fetch_array ($result,MYSQL_ASSOC)){
foreach ($row as $val){
echo "<br>".$val;
}}

こういうことだと思います。

◎質問者からの返答

どうしてこうすると結果が違ってくるのかわかりませんでしたが、

なにはともわれ無事うまくいきました。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ