スレッド表示 | フラット表示〕 全トピック 923 件中 713 番目 次≫ ≪前

一部文字列にて検索時にエラー

created: 2003-12-13 19:01 | modified: 2003-12-28 14:20 | reply: 12

[1152] 一部文字列にて検索時にエラー

user: べんじゃみん ホームページ | created: 2003-12-13 19:01
現在、サンプルソースを元に検索結果をテーブルで表示させようと
思っているのですが、一部文字列で以下のようにエラーを返します。

この行でエラーを返します。

117 $num_rows = mysql_num_rows($result);

141 <?php mysql_free_result($result);?>

エラーを返す文字列は、「能」「ー」「?」「タ」です。
その他は、今のところ問題ないようなのですが・・・。

ささやかな情報でも結構ですので、何かお気付きの方がいらっしゃい
ましたら、ご教授頂けますでしょうか。

よろしくお願い致します。

全ソースは以下のようになっております。

<?php require_once('connections.php'); ?>
<?php
$colname_Record = "1";
if (isset($HTTP_GET_VARS['oldcode'])) {
$colname_Record = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['oldcode'] : addslashes($HTTP_GET_VARS['oldcode']);
}
mysql_select_db($database_test, $test);
$query_Record = sprintf("SELECT * FROM jirei1 WHERE oldcode = '%s'", $colname_Record);
$Record = mysql_query($query_Record, $test) or die(mysql_error());
$row_Record = mysql_fetch_assoc($Record);
$totalRows_Record = mysql_num_rows($Record);
?>
<body bgcolor=white background="blue2.png">
<?php
include "pref.php"; /* 担当者データを取り込む */
include "config.inc.php"; /* DB情報を取り込む */
$link = mysql_connect("$host","$dbuser", "$pass") or die(mysql_error());
mysql_select_db("$dbname", $link) or die(mysql_error()); ?>
<?php print("<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>\n");
print("<html>\n");
print("<head>\n");
print("<title>searching result of jirei oldcode</title>\n");
print("<meta http-equiv=content-type content='text/html; charset=Shift-jis'>\n");

print("</head>\n");
print("<body bgcolor=white>\n");

/* シート番号フィールドの問い合わせ作成。数字以外の文字は無視する */
function makeup1($name,$value) {
global $f,$query;
if ($value != "") {
$value = mysql_escape_string(ereg_replace("[^0-9]","",$value));
if ($f) {
$query = $query . " and";
} else {
$query = $query . " where";
}
$query = $query . " $name = '$value'";
$f++;
}
};?>
<?php /* 担当者コードフィールドの問い合わせ作成 */
function makeup2 ($name,$value) {
global $f,$query;
if ($value != -1) {
if ($f) {
$query = $query . " and";
} else {
$query = $query . " where";
}
$query = $query . " $name = '$value'";
$f++;
}
};?>
<?php /* 品名・単価・個数などの文字列フィールドの問い合わせ作成。
* 無条件に前方一致検索を行う
*/
function makeup3 ($name,$value) {
global $f,$query;
if ($value != ".*") {
$value = strip_tags($value);
if (substr($value,0,1) != ".") {
$value = ".*" . $value;
}

if ($f) {
$query = $query . " and";
} else {
$query = $query . " where";
}
$query = $query . " $name regexp '$value'";
$f++;
}
};

/* 問い合わせ文字列格納用の変数 */
$query = "select naiyou,oldcode,pid,daimei,ranpu,syoujyou,genin from jirei1 ";

/* 検索条件があるかどうかのフラグ */
$f = 0;

makeup1("oldcode",$_POST['oldcode']); /* シート番号 */
makeup1("newcode",$_POST['newcode']); /* */
makeup2("pid",$_POST['prefecture']); /* 担当者コード */
makeup3("naiyou",$_POST['daimei']); /* 品名 */
makeup3("ranpu",$_POST['ranpu']); /* 単価 */
makeup3("syoujyou",$_POST['syoujyou']); /* 個数 */
makeup3("genin",$_POST['genin']); /* 備考 */

if ($f) {
$query = $query . " order by oldcode";
} else {
print("検索キーが設定されていません。\n");
exit;
}


/* デバッグオプションがオンならSQL文を表示する */
if ($_POST['sqlprint']) {
print("以下のSQL文を発行しました。<br>$query<br><br>\n");
}

print("<h1>検索結果</h1>ブラウザの「戻る」ボタンにて前画面に戻ってください。");
?>
<table border bgcolor="#FFFFFF">
<tr>
<th nowrap bgcolor="#CCCCCC">シート</th>
<th nowrap bgcolor="#CCCCCC">担当者</th>
<th nowrap bgcolor="#CCCCCC">品名</th>
<th nowrap bgcolor="#CCCCCC">単価</th>
<th nowrap bgcolor="#CCCCCC">個数</th>
<th nowrap bgcolor="#CCCCCC">備考</th>
</tr>
<?php

$result = mysql_query($query, $link); /* */
$num_rows = mysql_num_rows($result); /* */

if ($_POST['ulimit'] < $num_rows) {
$cnt = $_POST['ulimit'];

}
else {
$cnt = $num_rows;
echo "$num_rows 件見つかりました。<br>\n";
}

/* テーブル形式でデータを表示 */
for($i=0;$i < $cnt;$i++) {
print("<td nowrap><a href=detail.php?Record=" . mysql_result($result,$i,1) . " target=\"mainFrame\" > " . mysql_result($result,$i,1) . " </td>\n");

print("<td nowrap>" . $pref_tbl[mysql_result($result,$i,2)] . "</a></td>\n");
print("<td nowrap>" . mysql_result($result,$i,3) . "</td>\n");
print("<td nowrap>" . mysql_result($result,$i,4) . "</td>\n");
print("<td nowrap>" . mysql_result($result,$i,5) . "</td>\n");
print("<td nowrap>" . mysql_result($result,$i,6) . "</td>\n");
print("</tr>\n");
}
?>

<?php mysql_free_result($result);?>

</table>
</body>
</html>
<?php
mysql_free_result($Record);
?>
reply: 1153 返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 923 件中 713 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑