簡體   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