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

实现目标的最简单方法可能是使用 if 语句包装记录集代码,该语句检查 $colname_get_voice_search_men 是否不等于 -1(为您提供“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,我可能会将 if 语句放在创建 SQL 语句 ( $query_get_voice_search_men = sprintf(....) ) 的行周围,但是当您修改它生成的代码时,Dreamweaver 通常不会识别记录集. 事实上,我建议的编辑可能会导致 Dreamweaver 无法“看到”您的记录集。

因此,如果您在“服务器行为”面板中不再看到您的记录集,或者在“绑定”面板中看不到条目,​​则 Dreamweaver 没有正确识别记录集代码。如果是这种情况,那么我的建议是使用原始记录集代码(以及绑定面板中相关的重复区域和项目)构建页面,一旦你“完成”页面,添加条件代码。这将允许您在添加“全部返回”代码之前充分利用 Dreamweaver 的记录集工具。

注意:我假设您的 return all 分支不会返回大量记录。如果是这样,那么您可能应该在 SQL 中添加一个 LIMIT 子句,这样您就只能得到前 1000 个左右。查看MySQL 文档以获取 SELECT 语句,其中包括对 LIMIT 的一些讨论

于 2009-09-10T15:33:24.027 回答