$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;
我的输出是'这里有些html'这是因为这就是字符串的定义方式。我希望得到这个函数来添加从mysql查询中提取的值,然后将它们添加到一个字符串中,我可以在所有php的末尾打印出来。 如果我们使用echo而不是$ html连接,则函数的输出是
12345 - <br>
123 - 1 <br>
1236485 - 2 <br>
任何想法?
答案 0 :(得分:0)
那是因为$html
是按值传递的,它的新值是从函数本身返回的。
回调sql()
本身的结果将产生正确的价值。
echo sql($mysqli,$html);
或者,您可以先将新值重新分配给$html
:
$html = sql($mysqli, $html);
echo $html;
答案 1 :(得分:0)
通过引用传递:
function sql($mysqli,&$html){
答案 2 :(得分:0)
尝试使用
echo sql($mysqli, $html);
答案 3 :(得分:0)
也许你的问题是你的$ startday是在你的$ endday之后。该命令与'之间'有关。此外,您可能希望在开始日期和结束日期中包含时间部分,否则如果您的开始日期和结束日期是相同的日期,则您将无法获得当天的结果。像这样:WHERE a.in BETWEEN '2013-04-01 00:00:00' AND '2013-04-01 23:59:59'