php select 如何判断得到数组的值

各位好,问题是这样的:前面一个页面main.php的url传值是pro.php?subName=x在pro.php页面要如何写这个select语句呢?(这个subName... 各位好,问题是这样的:
前面一个页面main.php的url传值是pro.php?subName=x
在pro.php页面要如何写这个select语句呢?(这个subName字段是set类型的[复选框],值可能是x,y,z)
比如有纪录:
id Name subName
1 a x
2 b x,y
3 c y,z
pro.php页面的这个sql要怎么写呢,我要显示出第一和第二条纪录.如何把subName字段中的x剥离出来?
$sql="select * from product where ?";

一直先线,谢谢各位了
展开
 我来答
童修美饶蕊
2019-01-20 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:725万
展开全部
看了几遍还是没有完全搞懂你的意思。pro.php?subName=x

pro.php 页面
先获取url
的值。
$_GET['subName'];
获取
x
的值。
然后在用
select
语句,这个你应该知道。
如果是检索多条语句的话就
用循环遍历结果数组。
假如经过select
语句检索到
while($row=
mysql_fetch_array($sql))
{

/*得到一个数组,如果是框架的话,可以用框架内自定义的
mysql
语句,从而等到一个
数组集。假如这个数组集

$array_result*/
}
for(
$i=0;
$i<count($array_result);
$i++
)
{

$value.
=.",".$array_result[$i];
}
//
在循环之外处理得到字符串,然后用explode
函数打散成数组。
$test
=
substr($value,1);
$result_array
=
explode(",",
$test);

得到的$result_array可能就是你想要的数组。当然也可以用foreach
不用for.
结果是一样的。
foreach
($array_result
as
$values)
{

$value.
=.",".$values[$i];
}
$test
=
substr($value,1);
$result_array
=
explode(",",
$test);
希望对你有帮助
cmoooo
推荐于2016-09-27 · TA获得超过3587个赞
知道小有建树答主
回答量:741
采纳率:0%
帮助的人:674万
展开全部
很奇怪的问题哦,这个问题怎么会没有人来回答呢?

在pro.php这个文件中如何查询数据库:(刚才错了,呵呵,不好意思。)

<?php

$search = $_GET[subName];//将传值赋给变量;

$sql="SELECT * FROM `product` WHERE `subName` LIKE '%$search%'";

$arr=mysql_query($sql);

$i=0;

$myarr=array();

while($row = mysql_fetch_row($arr)){

$myarr[$i] = $row;

$i++;

}

print_r($myarr); //你试试在这里会不会显示你表中的那两行。因为取出的二维数组,所以到应用的时候要进行遍历;

?>

其中mysql数据库语句 LIKE 的用法是相似匹配,后面的百分号表示前可余量后可余量,如果只在后面加这个%,你的例子也是可以实现的。

但是如果在你的subName字段中出现其它带有x的字符串,它也会被匹配,这一点一定要在使用中格外注意。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇甫谷蓝朋花
2019-07-26 · TA获得超过3万个赞
知道大有可为答主
回答量:1.2万
采纳率:31%
帮助的人:772万
展开全部
如果你是用mysql的话,可以用正则(我不知道其它的数据库可以不)
如果匹配x的话,下面应该可以精确吧,试了下,不知道是否有问题。
SELECT
*
FROM
a
WHERE
name='x'
OR
name
REGEXP
'^x,|,x,|,x$'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
藩熹纵含烟
2019-03-10 · TA获得超过3806个赞
知道大有可为答主
回答量:3120
采纳率:29%
帮助的人:440万
展开全部
很奇怪的问题哦,这个问题怎么会没有人来回答呢?
在pro.php这个文件中如何查询数据库:(刚才错了,呵呵,不好意思。)
<?php
$search
=
$_GET[subName];//将传值赋给变量;
$sql="SELECT
*
FROM
`product`
WHERE
`subName`
LIKE
'%$search%'";
$arr=mysql_query($sql);
$i=0;
$myarr=array();
while($row
=
mysql_fetch_row($arr)){
$myarr[$i]
=
$row;
$i++;
}
print_r($myarr);
//你试试在这里会不会显示你表中的那两行。因为取出的二维数组,所以到应用的时候要进行遍历;
?>
其中mysql数据库语句
LIKE
的用法是相似匹配,后面的百分号表示前可余量后可余量,如果只在后面加这个%,你的例子也是可以实现的。
但是如果在你的subName字段中出现其它带有x的字符串,它也会被匹配,这一点一定要在使用中格外注意。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凌的博客
2010-04-09 · TA获得超过235个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:165万
展开全部
<?
function sql($str){
$arr = explode(",",$str);
$sql = "select * from table where ";
$num = count($arr);
for ($i=0;$i<$num;$i++) {
$sql2 .= " subName1=$arr[$i] ";
if ($i<$num-1) {
$sql2 .= "or";
}
}
return <<<str
$sql $sql2
str;
}
$str = "1,2,3";
echo $sql = sql($str);
?>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式