2013-10-03 76 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']一起使用?