繁体   English   中英

Select 来自数据库并存储在数组中

[英]Select from database and store in an array

我想 select 来自 db 的一些数据并存储在一个数组中。 假设我的数据库表中有一个“关键字”列。 我想 select 关键字列类似于“自然”的所有行。

我正在尝试以下代码:

<?
    $term= "nature";    
    $arr = array();

    $sql = "select keyword from keywords where keyword LIKE '%$term%'";
    $result = mysql_query($sql) or die(mysql_error());  
    $rows = mysql_fetch_array($result); 
    foreach ($rows as $row){
            array_push($arr, $row['keyword']);
        }

    print_r($arr); //output: Array ( [0] => n [1] => n ) 

    ?>

所以来自 db 的结果应该只返回一个我需要存储在数组中的关键字“nature”。

  1. 为什么它两次存储相同的字符串? db 中没有与术语性质相似的任何其他行。
  2. 为什么它只存储数组中的第一个字母? 它不应该存储“自然”而不是“n”吗?

请帮我解决这个问题。

应该是这样的

$term   = "nature";    
$arr    = array();
$sql    = "select keyword from keywords where keyword LIKE '%$term%'";
$result = mysql_query($sql) or die(mysql_error());  
while( $row = mysql_fetch_assoc( $result ) ) {
 arr[] = $row[ 'keyword' ];
}

在您的解决方案中,您只从结果集中获取第一条记录作为数字索引数组。

顺便说一句-您知道以通配符开头的 LIKE 查询不能使用任何索引吗?

使用mysql_fetch_assoc而不是mysql_fetch_array

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM