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 ?";
一直先线,谢谢各位了 展开
前面一个页面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 ?";
一直先线,谢谢各位了 展开
6个回答
展开全部
看了几遍还是没有完全搞懂你的意思。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);
希望对你有帮助
在
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);
希望对你有帮助
展开全部
很奇怪的问题哦,这个问题怎么会没有人来回答呢?
在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的字符串,它也会被匹配,这一点一定要在使用中格外注意。
在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的字符串,它也会被匹配,这一点一定要在使用中格外注意。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果你是用mysql的话,可以用正则(我不知道其它的数据库可以不)
如果匹配x的话,下面应该可以精确吧,试了下,不知道是否有问题。
SELECT
*
FROM
a
WHERE
name='x'
OR
name
REGEXP
'^x,|,x,|,x$'
如果匹配x的话,下面应该可以精确吧,试了下,不知道是否有问题。
SELECT
*
FROM
a
WHERE
name='x'
OR
name
REGEXP
'^x,|,x,|,x$'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很奇怪的问题哦,这个问题怎么会没有人来回答呢?
在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的字符串,它也会被匹配,这一点一定要在使用中格外注意。
在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的字符串,它也会被匹配,这一点一定要在使用中格外注意。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<?
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);
?>
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);
?>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询