2013-08-01 3 views
1

Переменная $ q = $ _ GET ["q"]; правильно передает значение «q» в $ query и повторяет $ row ['YEAR'].Передача переменной в php

ОДНАКО, он не работает с заявлением while в том же коде.

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

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

Если я пытаюсь непосредственно ввести значение после того, как $ _GET это делает работу ($ д = 2013, например)

Может кто-нибудь дать мне помощь, чтобы сделать то время как работа с $ д = $ _GET [ "д"];

Bellow - это полный код.

Цените помощь

<?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___ using mysqli is not означает, что вы в безопасности от SQL-инъекции, ваш код уязвим для SQL-инъекции .. вам нужно правильно выполнить запрос ... так что либо используйте mysqli_real_escape_string, либо лучше подготовленный оператор –

ответ

1

$q=$_GET["q"]; будет возвращать нулевое значение, если вы не отправить форму с method='get' или URL-адрес страницы, на вас не содержит строку запроса с ?q=2013 как www.example.com?q=2013.

+0

Я использую селекторный блок и AJAX для отправьте значение в $ q = $ _ GET ["q"]; однако он не работает для утверждения while. I f Я набираю значение напрямую, например $ q = $ _ GET ["q"]; вместо этого я делаю $ q = 2013; он работает. –

Смежные вопросы