2016-01-18 43 views
1

我想從數據庫中檢索逗號分隔值並將每個值存儲在一個變量中。如何從數據庫中檢索逗號分隔值?

例如:在我的專欄中,我有以下幾點:2,3,5,8,9,21

我想這些數字商店裏面的變量是這樣的:

$a=2 
$b=3 
$c=5 
// and so on… 
+2

取決於你真正想要的數據,並在你的DBMS做你可能要考慮[nomalizing數據(https://en.wikipedia.org /維基/ Database_normalization)。 – VolkerK

回答

0

有以下解決方案來看看:

方法1

$alphabet = range('a', 'z'); 
$str = '2,3,5,8,9,21'; 
$str_array = explode(',', $str); 
foreach($str_array as $k=>$v){ 
    ${$alphabet[$k]} = $v; 
} 

echo $a,$b,$c,$d; 

方法2

$var = 'a'; 

$str = '2,3,5,8,9,21'; 
$str_array = explode(',', $str); 
foreach($str_array as $k=>$v){ 
    ${$var} = $v; 
    ++$var; 
} 
echo $a,$b,$c,$d; 

兩個解決方案的輸出:

2358 
1

如果你想加載包含分開的整數字符串與','或'。'或'a'或';'這樣做:

  • 如果你想出去 ' ':

    $字符='';

  • 如果你想出去:

    $字符=; '''。

  • 如果你想出去 '一':

    $字符= 'A';

  • 如果你想出去 ';':

    $字符= ';';

(我加了這個幫助任何人有繩子的其他語法)

要連接,你可以做(​​Documentation):

$connection = mysql_connect('adress', 'mysql_user', 'mysql_password'); 

好了,我們有聯繫。現在取數據(Documentation)。

$database = "DatabaseWithTableWithIntegers"; 
$table = "TableWithIntegers"; 
$rowname = "RowWithIntegers"; 
$sql = "USE $database; SELECT $rowname FROM $table;"; 
$result = mysql_query ($sql, $connection); 

現在宣佈類似清單:

$arr = []; // array for fetching 
$vrr = []; // array for fetched 

下一步是讀取行(Documentation):

while($row = mysql_fetch_row($result)){ 

行有串像「2,142,124,53,3511,513,531, 53「如果分隔符是」,「並且記錄存在於數據庫/表中。 神奇的功能是爆炸,這切片所有段到一個數組(Documentation):

$arr = explode($char, $row[$rowname]); //rowname is to be 100% sure 

的最後一件事是做轉換(Documentation

for($arr as &$a){ 
$value = intval($a); 
array_push($vrr, $value); // to save the value into vrr([Documentation][6]) 
}} 
+0

感謝您的回答,我是新來的php請給我完整的代碼 –

+0

我可以複製它,當我到家時,智能手機是非常最後的代碼編輯器(eta 4h) –

+0

希望,現在很清楚 –

0

如果您在存儲數據a1,a2,a3在單個列中的形式,爲什麼不只是獲取數據並使用explode()方法拆分它?

如果你正在使用關聯數組,然後使用json_encode()數據存儲爲字符串時,再對其進行解碼使用json_decode()後取出從數據庫