我在成员表中有一个血型数据 [A-,A+,B+,B-,AB+, AB-,O+,O-] 我有一个搜索功能,允许我选择以上血型并搜索具有所选血型的成员。 但我的查询没有为我获取血型以“+”结尾的成员。对于血型为“-”的成员,相同的查询工作正常。
然后我将查询结果传递给一个 javascript url,它会获取最终的查询结果。所以我觉得 javascript 变量在得到 + 时就结束了。那么如何管理呢?
这是我的查询:
$bldgroup = mysql_real_escape_string($_POST["bldgroup"]);
$sqlsearch = mysql_query("SELECT * from member
WHERE blood_group='$bldgroup'
ORDER BY memid ASC");
<script>
var url = "../include/query.php?flag=search&&query="+sqlsearch;
</script>
<div><label>Blood Group</label></div>
<div>
<select id="bldgroup" name="bldgroup" >
<option value="">Select</option>
<option value="A+">A+</option>
<option value="A-">A-</option>
<option value="B+">B+</option>
<option value="B-">B-</option>
<option value="AB+">AB+</option>
<option value="AB-">AB-</option>
<option value="O+">O+</option>
<option value="O-">O-</option>
</select>
</div>
</div>
//This the content inside ./include/query.php file
if(isset($_REQUEST["flag"]))
{
$list = $_REQUEST["flag"];
if($list == "search")
{
$query = $_REQUEST["query"];
$sql = $query;
$sql.= mysql_query" ORDER BY t1.MemberID DESC";
}
}
最佳答案
该代码对我有用..我创建了一个表成员,其中包含一 strip 有 Blood_group A+ 的记录和一 strip 有 Blood_group A- 的记录。选择 A+ 并为我发送表单结果会产生正确的记录。
当然我不知道你的表定义,所以你的MySQL查询可能有问题。
尝试使用
$sql = "SELECT * from member where blood_group='$bldgroup' order by memid asc";
$search_result = mysql_query($sql) or die ($sql."<BR>".mysql_error());
另请注意您已收到的评论。您的代码使用了通常不安全的已弃用函数,您至少应该使用 mysqli功能。
我的 PHP 代码:
<?php
mysql_connect("localhost", "root", "root");
mysql_select_db("test");
$bldgroup = mysql_real_escape_string($_POST["bldgroup"]);
$sqlsearch = mysql_query("SELECT * from member where blood_group='$bldgroup' order by memid asc");
while ($row = mysql_fetch_row($sqlsearch)) {
var_dump($row);
}
?>
<form method="POST">
<div><label>Blood Group</label></div>
<div>
<select id="bldgroup" name="bldgroup" >
<option value="">Select</option>
<option value="A+">A+</option>
<option value="A-">A-</option>
<option value="B+">B+</option>
<option value="B-">B-</option>
<option value="AB+">AB+</option>
<option value="AB-">AB-</option>
<option value="O+">O+</option>
<option value="O-">O-</option>
</select>
</div>
</div>
<input type="submit">
</form>
我的表定义:
CREATE TABLE `member` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`blood_group` varchar(20) NOT NULL,
`memid` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
INSERT INTO `member` (`id`, `blood_group`, `memid`) VALUES
(1, 'A+', 123),
(2, 'A-', 231);
关于javascript - 如何管理mysql where子句中 "+"的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29699834/