dポイントプレゼントキャンペーン実施中!

何を初歩的な・・・と言われそうですが、それでも1~2日本気で検索をかけ、トライ&エラーの結果ですので質問させてください。

http://www.yc.musashi-tech.ac.jp/~yamada/doc/mys …
上記サイトが私のやりたいことに近かったので、参照して勉強中です。
ここの下の方にある、テーブルの一部のデータを表示、がしたいのですが、どうにも上手くいきません。

ブラウザで見てみると、
SELECT 商品名,単価 FROM {$tbl_name}". " WHERE 商品名 = '海の幸御膳'
といったようにSQL文がそのまま出力されてしまいます。

一体何が何やら・・・
環境はCentOS PHP5.1.6 MySQL5.0.27です。


ここを乗り越えたらまた自分で次の内容に挑戦していきたいと思いますので、とりあえずはここの、基本的な解決をお願いします。

A 回答 (3件)

print "\"{$str_sql}\"<br>\n";


で、sqlの本文を書いていますので、
「SQL文がそのまま出力されてしまいます」というのはこれに当たります。
sql文が表示されるのがいやならこの行をコメントアウトしてください。

また、次の行で
show_rs($rs);
というユーザー関数らしきものが呼ばれています。
これが関数としてどこかで宣言されているはずですので、それを確認して
ください。

この回答への補足

追加のお礼です

なんとか上手く表示されるようになりました。
あとはテーブルの表示云々なのでなんとでもなりそうです。

ありがとうございました。
また何かに躓いたら質問させていただくことがあると思いますので、そのときはまたご指導お願いします。

補足日時:2007/03/26 17:40
    • good
    • 0
この回答へのお礼

ありがとうございます。
質問本文にあったサイトを参考に探してみました。
show_rsは下記の通りでした。

function show_rs($rs)
{
// $rs結果セット(R)
// 戻り値=TRUE 結果セットにフィールド名がある場合
// =FALSE結果セットにフィールド名がない場合

// フィールドがある場合
if(arr_fields_name($rs,$arr_fields_name))
{
// 表の表示の開始
print "<table border=1 celpadding=0 cellspacing=0>\n";

// 表のヘッダー部(フィールド名)の表示開始
print "<tr>\n";

// 配列の値を順次参照
foreach($arr_fields_name as $field_name)
{
// フィールド名の表示
print "<td align=center>{$field_name}</td>\n";
}
// 表のヘッダー部の表示終了
print "</tr>\n";

// 結果セットの各レコードを順次、連想記憶に格納する
while($arr_record = mysql_fetch_assoc($rs))
{
// 行の表示の開始
print "<tr>\n";

foreach($arr_record as $field_name => $field_value)
{
// フィールド値をセル内に表示
print "<td>{$field_value}</td>\n" ;
}
// 行の表示の終わり
print "</tr>\n";
}
// 表の表示の終了
print "</table>\n";

$result = TRUE;
}
else
{
$result = FALSE;
}
return $result;
}

show_rsの中にもまだ呼び出されているものがあるようなので、もう少し時間をかけて検証してみます。

最終的にabcdeとだけ表示するのが目的なのですけどね。

お礼日時:2007/03/26 16:55

PHPにMysqlオプションをつけてインストールしましたか?


オプションをつけないとPHPからMysqlが使用できないはずです。

ソースはどのようにされていますか?

この回答への補足

php-mysqlのことでいいでしょうか?
phpMyAdimnやBLOG、Wikiなんかは自前で動いているので問題ないと思うのですが。

ソースはNo.1の方の回答補足欄に書き込みさせていただきました。

補足日時:2007/03/26 13:55
    • good
    • 0

他のSQLは、実行できるのですか?



SQL発行部分とその周辺のコードは、貼り付けられませんか?

この回答への補足

<?php
$db = mysql_connect('localhost','root','password');
$db_name = 'db';
mysql_select_db($db_name,$db);
$tbl_name = "tab1";

$str_sql = "SELECT Name FROM {$tbl_name}". " WHERE Name = 'abcde'";
$rs = mysql_query($str_sql,$db);

print "\"{$str_sql}\"<br>\n";
show_rs($rs);
print "<br>\n";


mysql_free_result($rs);
mysql_close($db);

?>

とりあえずこれがソースですが、いかがでしょう?

補足日時:2007/03/26 13:54
    • good
    • 0

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