2015-10-19 2 views
1

Я работаю над проектом PHP, и я столкнулся с проблемой, когда я не могу передать переменную PHP для выполнения SQL-запроса, полученного из ранее выполненного запроса.Как передать переменные PHP в SQL-запрос, полученный в результате предыдущего SQL-запроса?

<?php 
    include"config.php"; 
    $sqli = mysql_query("select * from police_data where p_id='$name_perm'",$conn); 
     //name_perm is again a variable that stores the police id. It works very fine. 

    while($rows = mysql_fetch_array($sqli)) 
    { 
     echo $rows['location'].'<br>'; 
     $e = intval($rows['location']+ 6); 
     $f = intval($rows['location']- 6); 
     echo $e.'<br>'; // I received the location in INT format 
    } echo $f.'<br>'; 

    $sql = mysql_query("select * from data_get having LatLong between 90 and 95",$conn) ; 
     // This query gives me result. But instead of 90 and 95 I want to pass $e and $f. 
     // When I tried so it doesn't provide any result. 

    while($row = mysql_fetch_array($sql)) 
    { 
     echo '<table>'; 

     echo '<tr>'; 
     echo '<td><img height="300" width="240" src="data:image;base64,'.$row['Image']. '"></td>'; 
     echo '<td>'.$row['LatLong'].'</td>'; 
     echo '<td>'.$row['month'].'</td></tr>'; 
     echo '</table>'; 
    } 
?> 

Вышеприведенный код предназначен для получения данных изображения между некоторым диапазоном.

ответ

0

Ответ заключается в том, когда вы передаете какое-либо значение в между функции, убедитесь, что первый передаваемое значение должно быть меньше, что второе значение.

так в моем коде,

<?php 
    include"config.php"; 
    $sqli = mysql_query("select * from police_data where p_id='$name_perm'",$conn); 
     //name_perm is again a variable that stores the police id. It works very fine. 

    while($rows = mysql_fetch_array($sqli)) 
    { 
     echo $rows['location'].'<br>'; 
     $e = intval($rows['location']+ 6); 
     $f = intval($rows['location']- 6); 
     echo $e.'<br>'; // I received the location in INT format 
    } echo $f.'<br>'; 

    $sql = mysql_query("select * from data_get having LatLong between $f and $e",$conn) ; 
     // $e = 103 , $f = 91 
     // so, mysql_query("select * from data_get having LatLong between $e and $f",$conn) ; is wrong. Hence $e and $f had to swapped. 

    while($row = mysql_fetch_array($sql)) 
    { 
     echo '<table>'; 

     echo '<tr>'; 
     echo '<td><img height="300" width="240" src="data:image;base64,'.$row['Image']. '"></td>'; 
     echo '<td>'.$row['LatLong'].'</td>'; 
     echo '<td>'.$row['month'].'</td></tr>'; 
     echo '</table>'; 
    } 
?> 
0

Это будет работать:

mysql_query("select * from data_get having LatLong between $e and $f",$conn) ; 

Но, пожалуйста, прекратите использование mysql_query, это deprecated

+0

я уже использовал этот код и пробовал, но идентификатор не давал мне никакого результата –

+0

затем повторить значения перед запросом и проверить, являются ли они правильно? –

+0

Сделал это. Это прекрасно дает мне ценность. –

0

Попробуйте этот код

mysql_query("select * from data_get having LatLong between $e and $f",$conn) ; 

Pls попробовать это: -

while($rows = mysql_fetch_array($sqli)) 
    { 
     echo $rows['location'].'<br>'; 
     $e = intval($rows['location']+ 6); 
     $f = intval($rows['location']- 6); 
     echo $e.'<br>'; // I received the location in INT format 
     echo $f.'<br>'; 
     break; 
    } 
+0

Я уже использовал этот код и попробовал его, но id не дал мне результата –

+0

Пожалуйста, распечатайте свой запрос mysql и запустите его (phpmyadmin) или другой клиент MySQL @ JijoNair –

+0

Я попробовал. Пока нет результата. –

0

Вы можете сделать это следующим образом:

$where="WHERE LatLong between ".$e." AND ".$f."; 


mysql_query("select * from data_get $where",$conn) ; 
+0

Я пробовал ваш код, но все равно никакого результата. Я изменил его на '$ where =" WHERE LatLong между '. $ E.' И '. $ F.' «; $ sql = mysql_query ("select * from data_get $ where", $ conn); 'но я до сих пор не получил результата –

+0

эхо вашего запроса и ударил его в sql-команде и посмотрел, приближается ли значение или нет. (проверьте $ e и $ f значение показывает или нет) –

+0

показывает результат как '$ e', так и' $ f' даже до точного SQL-запроса '$ sql = mysql_query (« выберите * из data_get с LatLong между 90 и 95 », $ conn); ' –