我有一个填充了值的textarea。在提交按钮上,我使用以下代码将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列'Tokyo - London'然后添加到bltime列'10:00:00'。 Postflight中的数据应如下所示:
sfno || bltime || sample_lang
00001 || 10:00:00 || Tokyo - London
00002 || 11:00:00 || London - Tokyo
我尝试了几个MySQL字符串函数,比如explode,locate,trim但是无法正常工作。我对MySQL字符串函数并不熟悉,所以我很难让它工作。任何关于如何做到这一点的想法将不胜感激。非常感谢!
编辑: 我不仅仅限制MySQL字符串函数的可能解决方案。当然我也对PHP解决方案持开放态度。我刚才说明了我到目前为止所做的工作。感谢。
答案 0 :(得分: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());
}
答案 1 :(得分:0)
你必须在你的代码中使用一些逻辑,将字符串(textarea中的文本输入)分成两个值(一个应插入sample_lang列,一个插入bltime)然后将这些值分别插入这些列中。