2017-08-14 41 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

相关问题