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

Dreamweaver记录集默认值(PHP)-如何返回所有记录?,php,mysql,dreamweaver,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_g

你好!虽然我在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"

但这不会改变结果,也就是说不会返回任何记录。我也尝试过>0,但没有乐趣

非常感谢您的反馈


谢谢。

实现目标的最简单方法可能是用if语句包装记录集代码,检查$colname\u get\u voice\u search\u men是否不等于-1。您提供了搜索类型,因此应该限制结果,然后在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\u get\u voice\u search\u men=sprintf….的行的周围,但是,当您修改Dreamweaver生成的代码时,它通常无法识别记录集。事实上,我建议的编辑可能会导致Dreamweaver看不到您的记录集

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

注意:我假设returnall分支不会返回大量记录。如果是这样的话,那么您可能应该在SQL中添加一个LIMIT子句,这样您就只能得到前1000名左右的数据。看看这本书

$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);
}