2017-08-14 39 views
0

下面我有一個表顯示來自MySQL的數據,在數據庫中,有三列用於存儲不同的語言的味精(即傳統消息, 簡化消息& engmessage)。如何獲得一個while循環內的列的所有值,並將這些值放入一個數組

每個人可以挑選自己喜歡的語言,在view page,有一個msg column,它會顯示他們的首選語言的人的味精

喜歡這個

People  Language  Msg 
A   繁體   物理治療 
B   Eng   Physiotherapy 

<table> 

    <?php 
$result = mysql_query("SELECT * 
FROM treatmentdetail WHERE 
language ='繁體' OR language ='ENG' OR language ='簡體'");?> 
<?php 

    $specific = []; 

    while($row = mysql_fetch_array($result ,MYSQL_ASSOC)) {?> 

    <tr> 

    <td><input class="form-control" type="text" size="1" name="people[]" 
    value="<?php echo $row['people'] ?>"></td> 
    <td><input class="form-control" type="text" size="1" name="language[]" 
    value="<?php echo $row['language'] ?>"></td> 


    <td width="200px"><input class="form-control" type="text" size="1" 
    name="msg[]" value=" 
    <?php if($row['language'] == '繁體') 
    { 
    echo $row['traditionalmessage'];} 

    else if($row['language'] == 'ENG') 
    { 
    echo $row['engmessage'];} 

    if($row['language'] == '簡體') 
    { 
    echo $row['simplifiedmessage'];} ?>"> 
    </td> 

關閉表

<?php 
echo "</tr>"; 
echo "</table>";echo "</form>";?> 

現在我想get all the values of the msg column並把它們放在一個數組稱爲$具體

 <?php $specific = [ 
         "message" => $row["engmessage"] 
        ];?> 

在這裏,我只是硬編碼來獲取所有信息的價值。但是,因爲這將是傳統的簡化消息。所以它必須是動態的。

那麼如何才能得到味精列的所有值(也可以有多個數據庫列

i.e. traditionalmessage/ 
simplifiedmessage /engmessage) 

檢索到的值,並把這些值到一個數組

希望你明白我的意思。

非常感謝。

+0

順便提一句,您通常會存儲類似於language_id的內容,然後根據表單中的隱藏ID選擇語言。 – Strawberry

+0

現在,我可以根據個人在頁面中的語言選擇顯示味精,只是不知道如何從msg列中獲得那些值在一個while循環中,並將它們放入一個數組中 – Codezzz

+1

不幸的是,我不再回答有關這個古老的問題,不安全和不贊成使用的API。 – Strawberry

回答

0

我可以使用if else語句得到我想要的結果。我知道那裏肯定有更好的答案。如果你碰巧有一個,請分享。再次感謝那些曾經幫助過我的人。

if($row['language'] == '繁體') 
{ 
    $specific[] = [ 
       "message" => $row["traditionalmessage"] 

];} 

    else if($row['language'] == '簡體') 
{ 
    $specific[] = [ 
       "message" => $row["simplifiedmessage"]   

];} 

    else if($row['language'] == 'ENG') 
    { 
    $specific[] = [ 
       "message" => $row["engmessage"] 

];} 
1

什麼問題?據我所知,你需要它們來提取與消息循環中的所有列。你知道人l列名或你需要動態確定它?如果您以前知道,則可以循環使用$row數組並將所需值提取到數組中。

foreach ($row as $key) { 
     //ignore columns with no 'message' in title 
     if (FALSE === strpos($key, 'message')) continue; 

     // do with $row[$key] what you want 
    } 

作爲尊重的成員草莓說你需要使用庫MySQLi(MySQL的改善或PDO,或mysqlnd)擴展 與DB,而不是過時,過時的mysql擴展工作。如果您需要添加新的列每一個新的語言

一般建議 你的表結構是錯誤的。你需要重新考慮你的表格結構。谷歌關於'db規範化'。

+0

感謝您的建議,將對此進行調查 – Codezzz

相關問題