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());

    }

テキストエリアに次のように入力した場合:

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

飛行後のテーブルには、それぞれこれらのデータが含まれます。

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」に追加することです。飛行後のデータは次のようになります。

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

explode、locate、trimなどの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

urコードでいくつかのロジックを使用し、文字列(textareaのtext iput)を2つの値(1つはsample_lang列に挿入する必要があり、もう1つはbltimeに挿入する必要があります)に分割してから、これらの値をこれらの列に別々に挿入する必要があります。

于 2012-09-04T05:15:12.093 に答える