アプリ版:「スタンプのみでお礼する」機能のリリースについて

MYSQL関数の練習で、以下のソースを実行しました。selectDBなどの部分は省いております。
$sql_keyword = ereg_replace("[[:blank:]]+","%\" and name LIKE \"%",trim($word));
$sql = "SELECT * FROM shop where name LIKE \"%$sql_keyword%\"";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
echo "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo convert("\t\t<td>$col_value</td>\n");
}
echo "\t</tr>\n";
}
echo "</table>\n";
mysql_free_result($result);

で行うも、エラーなども無く、結果がブランクになってしまいます。
検索する文字列($WORD)に該当するレコードは複数存在します。
エラーなどもないため、原因がわかりません。皆様のお力をお借りできればと存じます。よろしくお願いいたします。

A 回答 (1件)

ログに不具合が見つからない場合は処理の切り分けをし、


一つ一つの動作を検証しましょう。

この場合ですとphpの動作とmysqlの動作の切り分けが必要です。
$sqlをechoし、そのクエリをmysqlコマンドから流して検索結果が出ますでしょうか。

結果が出た場合はphpの不具合となります。
$resultや$sqlがどこかで上書きされてないか注意しましょう。

結果が出なかった場合はクエリのエラーとなります。
クエリの構築を見直しましょう。

それでも不明だった場合は途中処理でexitかけてみてそこまでの処理が
すべて正常かどうか確認しましょう。

// クエリのエラーな気がするなぁ

この回答への補足

さまざま試してみたところ、上記ソースはあるプログラムに入れていた一部のものだったのですが、単純に上記ソースだけでは問題なく動作しました。

ほかに問題があったようです。別の部分をいろいろと検証してみたいと存じます。ご回答ありがとうございました。

補足日時:2007/10/28 12:59
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。$sqlをechoしたところ、sql_keywordが入力されたものがでてきました。このクエリをPHPmyadminで実行したところ問題なく動作いたしました。

mysql_query($sql)をechoしたところ、Resource id #6が帰ってきました。
$resultをechoしたところ、1が帰ってきました。

やはりエラーが出てきません><
この情報から推測できるものはございますでしょうか??
お力をおかしいただければと存じます

お礼日時:2007/10/28 12:46

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