2013-04-04 170 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'