2013-04-04 140 views
0
$html = ' some html here <br>'; 

function sql($mysqli,$html){ 

     $stmt = $mysqli->prepare("SELECT * FROM `jobs` WHERE `out` is null"); 
$stmt->execute(); 
$stmt->store_result(); 
$stmt->bind_result($job_id,$vin,$yr,$mk,$mdl,$color,$miles_in,$miles_out,$quoted,$price,$phone,$customer,$bal,$tax,$msg,$in,$out); 

     $stmt = $mysqli->prepare("SELECT * FROM jobs a WHERE a.in between ? and ?"); 
     $stmt->bind_param('ss', $startday, $endday); 

     $startday = '2013-01-01'; 
     $endday = '2013-12-31'; 

     $stmt->execute(); 
     $stmt->store_result(); 

     $stmt->bind_result($job_id,$vin,$yr,$mk,$mdl,$color,$miles_in,$miles_out,$quoted,$price,$phone,$customer,$bal,$tax,$msg,$in,$out); 

     while($stmt->fetch()){ 

下面是用两种不同的方法在同一行:注释的部分作品,但我不能得到的功能相同的值添加到HTML字符串,然后在与完成它返回到脚本php代码。函数不会返回值

$html.= $vin.' - '.$count.' <br> '; // echo $vin.' - '.$count.' <br> '; 

$count++; 
     } 
     return $html; 
} 

sql($mysqli,$html); 
echo $html; 

我的输出是'some html here',这是因为这是字符串的定义方式。我希望得到这个函数来添加从mysql查询中提取的值,然后将它们添加到可以在所有php结尾处打印出来的字符串。 函数的输出,如果我们使用echo $代替HTML级联是

12345 - <br> 
123 - 1 <br> 
1236485 - 2 <br> 

什么想法?

回答

0

这是因为$html是按值传递的,它的新值是从函数本身返回的。

响应sql()本身的结果本身将产生正确的值。通过参考

$html = sql($mysqli, $html); 
echo $html; 
0

它传递:

echo sql($mysqli,$html); 

或者,您可以重新分配新的价值$html第一

function sql($mysqli,&$html){ 
0

尝试使用 echo sql($mysqli, $html);

0

也许你的问题是你的$ startday是af您的$终日。订单与'之间'有关。此外,您可能还希望在开始和结束日期中包含时间部分,否则如果您的开始日期和结束日期是相同的日期,那么您将无法获得当天的结果。像这样:WHERE a.in BETWEEN '2013-04-01 00:00:00' AND '2013-04-01 23:59:59'