str_split并从mysql获取数据

时间:2013-04-11 10:05:09

标签: php mysql

也许有人可以帮我解决这个问题。这对我来说有点棘手。

我用_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";
}
?>

由于

3 个答案:

答案 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方法,并使用逗号分割数字。这样,如果你需要调试,它对你来说更具可读性,并且代码将更加灵活。这意味着您可以将14904909作为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