2013-10-03 79 views
0

$阿賈克斯({ 類型: 「GET」, 網址:myurl,數據類型: 'JSON',數據: '用戶名',PHP SQL查詢中的if語句

+1

撇開顯而易見的「你應該清理你的SQL」,「你不應該因爲它暴露你的SQL而死於查詢」以及其他各種「不應答」的事情。 什麼,當你做了以下情況:? '' – Wing

+2

這是SQL注入的大門,我建議你使用mysqli或者pdo prepared語句 – bksi

+1

我的猜測是你沒有收到下拉列表的值,我們可以看到創建下拉列表? – wiscWeb

回答

0

我會建議你做一些修改如果它可以工作:

一拿都$ _GET和$ _POST變量,如果你的表格是使用方法=「POST」

II使用不區分大小寫的匹配「所有」的字符串作爲所有。用戶

<?php 
include("dbconnect.php"); 
$username = isset($_GET['username']) ? $_GET['username'] 
    : (isset($_POST['username']) ? $_POST['username'] : ''); 
if(preg_match("/^all$/i", $username)) 
{ 
    $query = "select * from broons order by fname asc"; 
} 
else 
{ 
    $query = "select * from broons where username = '$username' order by fname asc"; 
} 
$link = mysql_query($query); 
if (!$link) { 
    die($query); 
} 
$rows = array(); 
while($r = mysql_fetch_assoc($link)) { 
    $rows[] = $r; 
} 
$json = json_encode($rows); 

echo $json; 
echo $query; 
?> 

祝你好運。

增加:

我可能會給上述錯誤的方式。

主叫側jQuery.ajax(),您的用戶名現場似乎沒有傳遞到服務器,請試試這個:

$.ajax({ 
    type:"GET", 
    url: myurl, dataType:'json', data: 'username=JohnDoe2'}); 
0

你應該提供附帶的HTML。您的表單可能會提交POST變量(推薦),在這種情況下,$_GET['username']爲空。它是否與$_POST['username']一起使用?