2013-08-01 178 views
1

變量$ q = $ _ GET [「q」];正確地將值「q」傳遞給$查詢並回顯$ row ['YEAR']。在php中傳遞變量

但是,它並不適用於同一代碼中的while語句。

while ($rows = $result2->fetch_array()) 

{ 
$row0 [] = $rows['YEAR'];    
$row1 [] = $rows['MONTH'];   
$row2 [] = $rows['SALES']; 
} 

,如果我嘗試直接鍵入值之後,$ _GET它的工作($ Q = 2013;例如)

誰能給我一個幫助,使與$的,同時工作Q = $ _GET [ 「q」];

波紋管是完整的代碼。

感謝所有幫助

<?php 
$q=$_GET["q"]; 

$mysqli = new mysqli('localhost','user','pswd','database'); 


/* check connection */ 
if (mysqli_connect_errno()) { 
printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); 
} 

$query = "SELECT * FROM table_test WHERE `YEAR`='".$q."'"; 

$result = $mysqli->query($query); 

if ($row = $result->fetch_array()) 

{ 
echo "<td>" . $row['YEAR'] . "</td>"; 

} 

$result2 = $mysqli->query($query); 

while ($rows = $result2->fetch_array()) 

{ 
$row0 [] = $rows['YEAR'];   
$row1 [] = $rows['MONTH'];  
$row2 [] = $rows['SALES']; 
} 



/* free result set */ 
$result->close(); 


$mysqli->close(); 

?> 
+1

___warning___使用mysqli並不意味着你是從sql注入安全的你的代碼很容易sql注入..你需要正確地轉義請求...所以要麼使用mysqli_real_escape_string或更好地準備語句 –

回答

1

$q=$_GET["q"];將返回null如果你沒有提交與method='get'表單或你網頁的網址不包含查詢字符串?q=2013www.example.com?q=2013做。

+0

我使用選擇框和AJAX將值發送到$ q = $ _ GET [「q」];但它不適用於while語句。我直接輸入值,例如$ q = $ _ GET [「q」];相反,我做$ q = 2013;它確實有效。 –