只抓取字符串数组中的第一个字符

时间:2014-11-13 19:15:14

标签: php sql arrays

所以我有这个查询应该生成一个说明" x和x'之间的对话。但是现在,我只是打印那些用户userids的前两位数字。最终我会更改查询以获取其用户名,但我现在只是从用户ID开始。由于数组是字符串,我认为如果我抓住用户名,就会发生同样的问题。

另外,我知道它已被弃用......我计划很快转换到sqli。应该对此没有影响。查询工作正常,我认为它只是从数组错误抓取。

 $sql1 = "SELECT distinct(userid) as userid FROM message_recips WHERE messageid=$_GET[id]";
       echo $sql1;
       $result1=mysql_query($sql1);
       var_dump($result1);
       $results2=mysql_fetch_array($result1);
       var_dump($results2);
       $uids= array();
       foreach ($results2 as $result) {
                $uids[] = (int)$result['userid'];
       }
       $last = array_pop($uids);

       print '<p>Conversation between ';
       print implode(', ', $uids) . ' and ' . $last;
       echo '.</p>';

以下是从阵列打印的内容:

 Conversation between 2 and 2.

当数组看起来像:

array (size=2)
0 => string '274' (length=3)
userid' => string '274' (length=3)

真诚感谢您的帮助!我环顾四周尝试了一些来自类似问题但却找不到我的东西。

2 个答案:

答案 0 :(得分:0)

更改

$uids[] = (int)$result['userid'];

$uids[] = $result['userid'];

答案 1 :(得分:0)

//$results2=mysql_fetch_array($result1);
$uids = array();
while ($row = mysql_fetch_assoc($result1)) {
    $uids[] = $row['userid'];
}
$last = array_pop($uids);