我试图将第一个函数中使用的变量$drop_var1
添加到我需要在 SQL 查询中使用的第二个函数中。每当我尝试传递全局变量或任何其他方法时,它返回黑色或不返回数据......我真的迷失了如何使其工作
//**************************************
// First selection results //
//**************************************
if($_GET['func'] == "drop_1" && isset($_GET['func'])) {
$return_value = drop_1($_GET['drop_var']);
}
function drop_1($drop_var1)
{
$TD_DB_RESOURCE = open_teradata_resource();
$result2 = "SELECT DISTINCT a.call_id as id, b.call_name as name FROM call_log as a, call as b WHERE cust_id in ($drop_var1) and src_row_cre_dt between '2015-12-26' and '2015-12-26' and a.call_id = b.call_id";
echo $result2."<br>";
$arr_results = odbc_exec($TD_DB_RESOURCE, $result2);
echo '<select name="drop_2" id="drop_2">
<option value=" " disabled="disabled" selected="selected">Choose API</option>';
while ($drop_2 = odbc_fetch_array($arr_results) )
{
echo '<option value="'.$drop_2['id'].'">'.$drop_2['name'].'</option>';
}
echo '</select><br><br>';
echo "<script type=\"text/javascript\">
$('#wait_2').hide();
$('#drop_2').change(function(){
$('#wait_2').show();
$('#result_2').hide();
$.get(\"func.php\", {
func: \"drop_2\",
drop_var: $('#drop_2').val()
}, function(response){
$('#result_2').fadeOut();
setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400);
});
return false;
});
</script>";
}
//**************************************
// Second selection results //
//**************************************
if($_GET['func'] == "drop_2" && isset($_GET['func'])) {
$return_value = drop_2($_GET['drop_var']);
}
function drop_2($drop_var2)
{
$TD_DB_RESOURCE = open_teradata_resource();
$result3 = "SELECT DISTINCT rc FROM call_log WHERE call_id in ('$drop_var2') and src_row_cre_dt between '2015-12-26' and '2015-12-26' and cust_id in ($drop_var1)";
echo $result3."<br>";
$arr_results = odbc_exec($TD_DB_RESOURCE, $result3);
echo '<select name="drop_3" id="drop_3">
<option value=" " disabled="disabled" selected="selected">Choose API Error Code</option>';
while ($drop_3 = odbc_fetch_array($arr_results) )
{
echo '<option value="'.$drop_3['rc'].'">'.$drop_3['rc'].'</option>';
}
echo '</select><br><br>';
echo "<script type=\"text/javascript\">
$('#wait_3').hide();
$('#drop_3').change(function(){
$('#wait_3').show();
$('#result_3').hide();
$.get(\"func.php\", {
func: \"drop_3\",
drop_var: $('#drop_3').val()
}, function(response){
$('#result_3').fadeOut();
setTimeout(\"finishAjax_tier_four('result_3', '\"+escape(response)+\"')\", 400);
});
return false;
});
</script>";
}
这是查询的样子
SELECT DISTINCT a.call_id as id, b.call_name as name FROM call_log as a, call as b WHERE cust_id in ('123456789') and src_row_cre_dt between '2015-12-26' and '2015-12-26' and a.call_id = b.call_id
SELECT DISTINCT rc FROM call_log WHERE call_id in ('29') and src_row_cre_dt between '2015-12-26' and '2015-12-26' and cust_id in ()
答案 0 :(得分:1)
这是因为在调用下面的函数时,变量名为$ drop_var2,但在构造查询时使用$ drop_var1
function drop_2($drop_var2)
{
$TD_DB_RESOURCE = open_teradata_resource();
$result3 = "SELECT DISTINCT rc FROM call_log WHERE call_id in ('$drop_var2') and src_row_cre_dt between '2015-12-26' and '2015-12-26' and cust_id in ($drop_var1)";
答案 1 :(得分:0)
这是一个非常基本的问题,请再考虑阅读PHP手册。我立即想到了三种方式:
function drop_2($drop_var2, $another_variable)
$this->var1
此外,将代码与html输出混合从不是一个好主意,请考虑使用mvc框架(laravel,codeiginiter,Slim)。