【问题标题】:storing text in different rows of MySQL database based on newline基于换行符将文本存储在 MySQL 数据库的不同行中
【发布时间】:2017-01-11 11:01:14
【问题描述】:

HTML 代码如下:

<div class="form-data">
    <form method="POST" action="test_upload_file.php" enctype="multipart/form-data">
      ID:<br>
      <input type="text" name="id"><br>                    
      Quote:<br>
      <textarea rows="4" cols="30" name="text-file"></textarea><br>
      <input type="submit" name="submit" value="Submit">
    </form>        
</div>

对应的php代码如下:

<?php

//connect database
$conn = mysqli_connect("localhost","root","","androidtest"); 

if (isset($_POST['submit'])) {
    $quote_id   = $_POST['id'];
    $text        = $_POST['text-file'];         

    //insert data
    $sql = "INSERT INTO quotes (quote_id, quote) VALUES ('$quote_id', '$text')";

    //store in the table
    $insert = mysqli_query($conn, $sql);              

    if ($insert) {                      
      echo "Success.";
    } else {
      echo "Error.";
    }

    //close mysql connection
    mysql_close($conn);

    //won't resubmit the form
    header("Location: " . $_SERVER['REQUEST_URI']);       
} 

?>

我想在 textarea 中发布多个用 break 分隔的句子。它们应该存储在 MySQL 数据库的不同行中。
例如,如果我输入 2 的 id 并发布一个包含多个句子的文本,这些句子由 break 或 newline 分隔,那么它应该像这样存储在数据库中:

quote_id 报价
2            第 1 行
2            第 2 行
2            第 3 行

【问题讨论】:

    标签: php mysql database post textarea


    【解决方案1】:

    试试下面的代码,它可能会对你有所帮助。我不确定由 '\n' 分隔的 textarea 下一行。请确保

    //connect database
    $conn = mysqli_connect("localhost","root","","androidtest");
    
    if (isset($_POST['submit'])) {
        $quote_id   = $_POST['id'];
        $get_file   = $_POST['text-file'];
        $textArray = explode("\n", $get_file);
        foreach($textArray as $key=>$value) {
            //insert data
            $sql = "INSERT INTO quotes (quote_id, quote) VALUES ('$quote_id', '$value')";
            //store in the table
            $insert = mysqli_query($conn, $sql);
            if ($insert) {
                echo "Success.";
            } else {
                echo "Error.";
            }
        }
        //close mysql connection
        mysql_close($conn);
        //won't resubmit the form
        header("Location: " . $_SERVER['REQUEST_URI']);
    }
    

    【讨论】:

    • 感谢您的回复。现在,当我在 textarea 中的第 1 行和第 2 行之后给出 \n 时,它会出现在 MySQL 数据库中的不同行中。但是所有的行都存储在数据库中。我想要第 1 行中的第 1 行,第 2 行中的第 2 行,等等。
    • 你能看到我问题中的最后一张表吗?现在在报价栏下,第 1 行第 2 行第 3 行即将到来,而不仅仅是第 1 行。
    • 我认为,您的字符串没有正确爆炸。请检查您的 $textArray 变量并确认它正确爆炸并包含 3 个数组元素
    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 2012-12-17
    • 2013-12-19
    • 1970-01-01
    • 2014-09-06
    • 2012-11-24
    相关资源
    最近更新 更多