Dreamweaver Recordset默认值(PHP) - 如何返回所有记录?

时间:2009-09-07 19:47:35

标签: php mysql dreamweaver

问候!虽然我在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”,但没有快乐。

非常感谢您的反馈。

感谢。

1 个答案:

答案 0 :(得分: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,我可能会在创建SQL语句的行周围放置if语句($ query_get_voice_search_men = sprintf(....)),但是当您修改时,Dreamweaver通常无法识别记录集。它生成的代码。实际上,我建议的编辑可能会导致Dreamweaver无法“看到”您的记录集。

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

一个注意事项:我假设你的返回所有分支都没有返回大量的记录。如果确实如此,那么你应该在SQL中添加一个LIMIT子句,这样你才能说出前1000个左右。查看MySQL docs for a SELECT statement, which includes some discussion of LIMIT