也许有人可以帮我解决这个问题。这对我来说有点棘手。
我用_GET引用一个很长的数字(如102030)。现在我想将这个长号分成较短的数字(如10 20 30)。这个短号在我的mysql数据库中是id,并且我想要获取所有id_name的foreach短号(比如name-10 name-20 name-30)。
要拆分使用str_split的长数字,但我现在不知道如何使用这个数组。
这是我的代码。 (数据库包含在此代码之前)
<?php
$long_id =$_GET[long_id];
if($_SESSION['test']) {
foreach($_SESSION['test'] as $split_id => $number) {
$split_id = str_split( $long_id, 2);
$result = mysql_query("SELECT id, id_name FROM names");
//Here is my WHERE missing, because it's not working with split_id...
list($id, $id_name) = mysql_fetch_row($result);
while($row = mysql_fetch_array($result)){
echo $id_name;
}
}
} else {
echo "test is empty";
}
?>
由于
答案 0 :(得分:1)
更改此
$long_id =$_GET[long_id];
到
$long_id =$_GET['long_id'];
你可以试试这个
$result = mysql_query("SELECT id, id_name FROM names WHERE id= '$split_id[0]' ");
这将查找两个第一个数字,如果您还想要其他数字
你可以添加
OR id= '$split_id[1]' OR id= '$split_id[2]' ....
答案 1 :(得分:0)
好。不要在粗略的设计路径上进行抨击,而是让我们重新思考一下你的设计。
您的数据
你有一个长号,102030
,然后将其分开。我可能会问,怎么样?你没有分隔字符。 PHP如何知道一个数字的起始位置和一个数字结束?看来你已经确定了“每两个角色”。这是非常严格的代码。
我建议采用CSV方法,并使用逗号分割数字。这样,如果你需要调试,它对你来说更具可读性,并且代码将更加灵活。这意味着您可以将1
或4904909
作为ID,而不是01
。
您的数据库连接
您正在使用已弃用的代码!不再支持不推荐使用的代码,在PHP的更高版本中,将无法运行。您需要将代码更新为mysqli或使用PDO对象。
答案 2 :(得分:0)
让我假装$ _GET ['long_id']保持值“102030”。
然后你应该在哪里:
WHERE id=$split_id[0] OR id2=$split_id[1] OR id3=$split_id[2]
要显示所有单独的ID,您可以执行以下操作:
$long_id =$_GET[long_id];
foreach ($split_id as $id)
{
echo "This is a id: ".$id."<br />";
}
输出: 这是一个id:10 这是一个id:20 这是一个id:30