将ID从一个表格发布到另一个表格

时间:2016-09-05 04:52:41

标签: php mysql

我在db中有两个表,输入表nd输出表。输入表有两列$ID (autoincreament), $question。表2有两列$Q_ID, Answer

我做了一个php页面(1),我打印出表1的内容(QUESTION),我添加了一个文本区域以获取访问者的答案,同时我还为表格添加了一个回显“隐藏”字段用于ID一。

现在这个php页面1重定向到php第2页,在那里我将文本区域输入POST到表2中的答案列。但不幸的是,ID无法在表2的q_id列中发布... 我尝试了很多,但没有希望......

我的PHP脚本#1如下 ::

<div class="name">
    <?php 
    $sql = "SELECT * FROM input";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) { 
        $index = 0; 
        while($row = $result->fetch_assoc()) { 
            $index++; // stuff inside foreach goes here 
            ?>

            <div id="q">
                <B><big><font color= #ba4a00> Q:</font></big> <?php echo $row["question"]; ?> 

                <?php 
                echo '<button class="add" id="add_'.$index.'"><B>Add Answer</B></button>';
                echo '<form style="display:none;" name="answer_'.$index.'" method="post" action="output.php">'; 
                echo '<input type="hidden" name="questionid" value="<?php echo $row[id]?>"/>';
                echo '<textarea  type="text" class="addtext" name="addtext" required id="addtext_'.$index.'" placeholder="Please type your answer here.."  ></textarea>';
                echo '<button onClick="addsubmit('.$index.');" type="submit" id="addsubmit_'.$index.'" class="addsubmit"><B>Submit</B></button>';
                echo '</form>';
                ?>
            </div>
        <?php     
        }
    } else {
        echo "0 results";
    }
    $conn->close();
    ?>
</div>

我的PHP脚本#2如下 ::

<?php include('1.php'); ?>
<?php
    $servername  = "localhost";
    $dbusername = "root";
    $dbpassword = "*******";
    $dbname = "the_database";
    $addtext = $_POST['addtext'];
    $questionid = $_POST['questionid'];
    $date = date_default_timezone_set('Asia/Kolkata');
    $date = date('M-d,Y H:i:s');
    $conn = new mysqli ($servername, $dbusername, $dbpassword, $dbname);
    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }
    $sql = "INSERT INTO output (question_id, answer, date)
    VALUES ('$questionid', '$addtext', '$date')";
    if ($conn->query($sql) === TRUE) {
    echo '<script language="javascript">';
    echo 'alert("Your Answer has been Succesfully posted")';
    echo '</script>';
    echo '<a href="1.php"></a>';
    }
    else {
    echo "ERROR" . $sql . "<br>" . $conn->error;
    }
    $conn->close();
 ?>

我希望将相应的问题ID及其答案传递给表2 非常感谢任何帮助..

3 个答案:

答案 0 :(得分:0)

尝试在php 1中用双引号括起id:

echo '<input type="hidden" name="questionid" value="'.$row['id'].'"/>';

yip ...更仔细地看一下你在PHP#1中混合单引号和双引号时遇到了一些问题。

例如,在此行上,echo命令在add _

之后的第二个单引号之后结束
echo '<button class="add" id="add_'.$index.'"><B>Add Answer</B></button>';

您需要始终使用单引号或双引号。

答案 1 :(得分:0)

$row['id']中提供单引号。将此<?php echo $row[id] >?更改为<?php echo $row['id'] >?

echo '<input type="hidden" name="questionid" value="'. $row['id'].'"/>';

答案 2 :(得分:0)

您已经使用PHP中的ECHO属性回显表单,但之后您也回应了它,这是错误的。

你必须像这样制作代码。

echo '<input type="hidden" name="questionid" value="'. $row['id'].'"/>';

试试这个并分享关于代码的想法..