0

ご挨拶!私はDreamweaverで作業していますが、この質問はPHP/MySQLの専門家がコメントするのに十分一般的かもしれません。

$colname_get_voice_search_men = "-1";
if (isset($_POST['search_type'])) {
  $colname_get_voice_search_men = $_POST['search_type'];
}
mysql_select_db($database_conn_talent, $conn_talent);
$query_get_voice_search_men = sprintf("SELECT * FROM view_voice_search_men WHERE voice_type_id = %s", GetSQLValueString($colname_get_voice_search_men, "int"));
$get_voice_search_men = mysql_query($query_get_voice_search_men, $conn_talent) or die(mysql_error());
$row_get_voice_search_men = mysql_fetch_assoc($get_voice_search_men);
$totalRows_get_voice_search_men = mysql_num_rows($get_voice_search_men);

Dreamweaverは、デフォルト値を「-1」に設定して、デフォルトでレコードが返されないようにします。ただし、デフォルトですべてのレコードを返すようにします。だから、私は自然に変わりました

$colname_get_voice_search_men = "-1"

$colname_get_voice_search_men != "-1"

ただし、これによって結果が変わることはありません。つまり、レコードは返されません。私も>"0"を試しましたが、喜びはありません。

フィードバックをいただければ幸いです。

ありがとう。

4

1 に答える 1

0

おそらく、目標を達成する最も簡単な方法は、$colname_get_voice_search_men が -1 と等しくないかどうかを確認する if ステートメントでレコードセット コードをラップすることです (「search_type」が提供されているため、結果を制限する必要があります)。 else 分岐でレコードセット コードをコピーしますが、すべての結果を取得できるように WHERE 句と変数置換を削除します。

次のようなもの:

$colname_get_voice_search_men = "-1";
if (isset($_POST['search_type'])) {
  $colname_get_voice_search_men = $_POST['search_type'];
}

if($colname_get_voice_search_men != -1){ // search_type specified
mysql_select_db($database_conn_talent, $conn_talent);
$query_get_voice_search_men = sprintf("SELECT * FROM view_voice_search_men WHERE voice_type_id = %s", GetSQLValueString($colname_get_voice_search_men, "int"));
$get_voice_search_men = mysql_query($query_get_voice_search_men, $conn_talent) or die(mysql_error());
$row_get_voice_search_men = mysql_fetch_assoc($get_voice_search_men);
$totalRows_get_voice_search_men = mysql_num_rows($get_voice_search_men);
}
else{ // return all
mysql_select_db($database_conn_talent, $conn_talent);
$query_get_voice_search_men = "SELECT * FROM view_voice_search_men";
$get_voice_search_men = mysql_query($query_get_voice_search_men, $conn_talent) or die(mysql_error());
$row_get_voice_search_men = mysql_fetch_assoc($get_voice_search_men);
$totalRows_get_voice_search_men = mysql_num_rows($get_voice_search_men);
}

Dreamweaver を使用していない場合は、おそらく SQL ステートメント ( $query_get_voice_search_men = sprintf(....) ) を作成する行の周りに if ステートメントを配置しますが、Dreamweaver が生成するコードを変更すると、多くの場合、Dreamweaver はレコードセットを認識しません。 . 現状では、私が提案している編集によって、Dreamweaver がレコードセットを「認識」できなくなる可能性があります。

そのため、サーバー ビヘイビアー パネルにレコードセットが表示されなくなったり、バインディング パネルにエントリが表示されなくなった場合は、Dreamweaver がレコードセット コードを正しく認識していません。その場合、私の提案は、元のレコードセット コード (およびバインディング パネルからの関連付けられた繰り返し領域とアイテム) を使用してページを構築し、ページで「完了」したら、条件を追加することです。コード。これにより、「すべてを返す」コードを追加する前に、Dreamweaver のレコードセット ツールを最大限に活用できます。

1 つのメモ: return all ブランチが膨大な数のレコードを返さないと仮定しています。その場合は、SQL に LIMIT 句を追加して、上位 1000 程度しか表示されないようにする必要があります。LIMIT に関するいくつかの説明が含まれている SELECT ステートメントについては、MySQL のドキュメントを参照してください。

于 2009-09-10T15:33:24.027 に答える