0

我有一个填充了值的文本区域。在提交按钮上,我使用以下代码将 textarea 的值保存在单独的行中:

echo "<center><textarea name='resulta' id='result' style='height:200px; width:350px' readonly=readonly></textarea></center>";
echo "<form><center><input type=submit name=subs value='Submit'></center></form>";
$val=$_POST['resulta'];

    if (isset($_POST['subs']))
    {

        $lines = explode("\n", $val);

    foreach ($lines as $line) 
    {
        mysql_query("insert into postflight (sample_lang) values ('$line')") or die(mysql_error());

    }

如果我在 textarea 中输入了以下内容:

Tokyo - London -> 10:00:00
London - Tokyo -> 11:00:00

postflight 表会分别有这些数据,

sfno  || bltime   || sample_lang
00001 || 00:00:00 || Tokyo - London -> 10:00:00
00002 || 00:00:00 || London - Tokyo -> 11:00:00

但是,我想要做的是,添加到 sample_lang 列“东京 - 伦敦”,然后添加到 bltime 列“10:00:00”。postflight 中的数据应如下所示:

sfno  || bltime   || sample_lang
00001 || 10:00:00 || Tokyo - London
00002 || 11:00:00 || London - Tokyo

我已经尝试了几个 MySQL 字符串函数,如爆炸、定位、修剪,但无法使其正常工作。我对 MySQL 字符串函数不太熟悉,所以我很难让它工作。任何关于如何做到这一点的想法将不胜感激。非常感谢!

编辑:我并没有将可能的解决方案仅限于 MySQL 字符串函数。当然,我也对 PHP 解决方案持开放态度。我只是说明了到目前为止我为完成这项工作所做的工作。谢谢。

4

2 回答 2

2

虽然这在技术上完全可以在 MySQL 中完成,但是是什么让您认为这是您唯一的选择?

在 PHP 中进行字符串解析确实容易得多。

foreach ($lines as $line) 
{
    $fields = explode('->', $line);
    $sample_lang = trim($fields[0]);
    $bltime = trim($fields[1]);
    mysql_query("insert into postflight (bltime, sample_lang) values ('".mysql_escape_string($bltime)."','".mysql_escape_string($sample_lang)."' )") or die(mysql_error());

}
于 2012-09-04T05:14:39.677 回答
0

您必须在您的代码中使用一些逻辑,将字符串(textarea 中的文本输入)拆分为两个值(一个应该插入到 sample_lang 列中,一个应该插入到 bltime 中)然后将这些值分别插入这些列中。

于 2012-09-04T05:15:12.093 回答