Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP/MySQL从数据库中逐行提取数据生成二维码_Php_Html_Mysql - Fatal编程技术网

使用PHP/MySQL从数据库中逐行提取数据生成二维码

使用PHP/MySQL从数据库中逐行提取数据生成二维码,php,html,mysql,Php,Html,Mysql,在使用PHP和SQL生成二维码时,我被困在这里。基本上,我是为学生生成代码,在从数据库获取数据时使用他们的ID和其他信息。但问题是,当我点击提交按钮,表格数据存储在二维码中时,它只生成最后一个学生的二维码 我在每一行上创建提交按钮,这样当我单击提交按钮时,就可以将该行的数据提交到QR图像。但问题是,当我点击任意一行的submit按钮时,它会生成表中最后一个学生的qr图像。例如,若1在表中有10个学生,那个么它将生成id为10的学生的图像,并位于表的最后一行 代码可在以下位置获得: <?ph

在使用PHP和SQL生成二维码时,我被困在这里。基本上,我是为学生生成代码,在从数据库获取数据时使用他们的ID和其他信息。但问题是,当我点击提交按钮,表格数据存储在二维码中时,它只生成最后一个学生的二维码

我在每一行上创建提交按钮,这样当我单击提交按钮时,就可以将该行的数据提交到QR图像。但问题是,当我点击任意一行的submit按钮时,它会生成表中最后一个学生的qr图像。例如,若1在表中有10个学生,那个么它将生成id为10的学生的图像,并位于表的最后一行

代码可在以下位置获得:

<?php
    include('qrlib.php'); 
    function getUsernameFromEmail($student_id) {
        $find = '@';
        $pos = strpos($student_id, $find);
        $username = substr($student_id, 0, $pos);
        return $username;
    }
    if(isset($_POST['submit']) ) {
        $tempDir = 'temp/'; 
        $student_id = $_POST['student_id'];
        $fname =  $_POST['fname'];
        $filename = getUsernameFromEmail($student_id);

        $codeContents = 'mailto:'.$student_id.'?id='.urlencode($student_id).'&fname='.urlencode($fname); 
        QRcode::png($codeContents, $tempDir.''.$filename.'.png', QR_ECLEVEL_L, 5);
    }
?>

表格:


学生证
名字
行动

您为每行创建一个提交按钮,但所有这些按钮都位于同一表单内,因此它们的作用都是相同的:提交整个表单及其所有输入

您将每个学生的学生id存储在其自己的输入标记中,因此每个学生都有一个学生id,但所有输入都有相同的名称:“学生id”

提交表单时(无论哪个特定的提交按钮导致表单提交)-发送所有输入的数据,但由于它们都具有相同的名称-最后一个值覆盖所有其余值。这就是为什么你总是只得到最后一个学生的结果

解决这个问题的一种方法是为每个学生提供单独的表单,但这不适用于当前的表结构

另一个选项是给每个提交按钮一个唯一的名称,然后根据提交按钮的名称确定哪个学生在PHP端提交

另一个选择是不为每个学生设置提交按钮,而是在表单底部设置一个提交按钮。然后,为每个学生添加一个具有唯一值(可能是学生id)的单选按钮。这样,提交表单会将所选学生的学生id发送到服务器


使用JavaScript可能是实现这一点的“正确”方法。

您为每行创建一个提交按钮,但所有这些按钮都位于同一表单中,因此它们的作用都是相同的:提交整个表单及其所有输入

您将每个学生的学生id存储在其自己的输入标记中,因此每个学生都有一个学生id,但所有输入都有相同的名称:“学生id”

提交表单时(无论哪个特定的提交按钮导致表单提交)-发送所有输入的数据,但由于它们都具有相同的名称-最后一个值覆盖所有其余值。这就是为什么你总是只得到最后一个学生的结果

解决这个问题的一种方法是为每个学生提供单独的表单,但这不适用于当前的表结构

另一个选项是给每个提交按钮一个唯一的名称,然后根据提交按钮的名称确定哪个学生在PHP端提交

另一个选择是不为每个学生设置提交按钮,而是在表单底部设置一个提交按钮。然后,为每个学生添加一个具有唯一值(可能是学生id)的单选按钮。这样,提交表单会将所选学生的学生id发送到服务器


可能“正确”的方法是使用JavaScript。

(1)在PHP端,您尝试访问“学生id”。它来自哪里?,(2)在发送代码之前,您应该正确缩进代码,(3)您应该创建尽可能最小的代码版本来重现您的问题。这将帮助您调试,如果您没有成功,将帮助其他人帮助您。我编辑了QR图像可以成功下载的代码,但使用此代码,我只能下载id在末尾的学生的QR图像,即使我单击任何学生的提交按钮。如果你能解决我的问题,并审查此代码。非常感谢。如果你能回答出obe提出的问题,那么人们会更容易帮助你。您上面的所有评论都是重新陈述您的问题,我们已经知道了。(1)在PHP端,您尝试访问“student_id”。它来自哪里?,(2)在发送代码之前,您应该正确缩进代码,(3)您应该创建尽可能最小的代码版本来重现您的问题。这将帮助您调试,如果您没有成功,将帮助其他人帮助您。我编辑了QR图像可以成功下载的代码,但使用此代码,我只能下载id在末尾的学生的QR图像,即使我单击任何学生的提交按钮。如果你能解决我的问题,并审查此代码。非常感谢。如果你能回答出obe提出的问题,那么人们会更容易帮助你。你上面的评论只是重新陈述你的问题,我们已经知道了。
<form id="demo-form2" method="post"  data-parsley-validate class="form-horizontal form-label-left" > 

                                      <table id="datatable" class="table table-striped table-bordered">
                  <thead>
                    <tr>
                      <th>Student Id</th>
                      <th>First Name</th>
                      <th>Actions</th>

                    </tr>
                  </thead>
                      <tbody>
                        <?php
                            include("includes/connection2.php");

                            $sql = "SELECT * FROM student";
                            $result=mysql_query($sql); //rs.open sql,con

                        while ($row=mysql_fetch_array($result))
                        { ?><!--open of while -->
                        <tr>
                            <td><input type="text" value="<?php echo $row['student_id']; ?>" name="student_id" ></td>
                            <td><input type="text" value="<?php echo $row['fname']; ?>" name="fname" ></td>
                        <td class="center">
                                <div class="form-group">
                    <input type="submit" name="submit" class="btn btn-primary submitBtn" style="width:20em; margin:0;" />
                </div>
                            </td>
                            <td class="center">

                            </td>   
                        </tr>
                                                            <?php
                           } //close of while
                        ?>
                      </tbody>
                       <?php
        if(!isset($filename)){
            $filename = "author";
        }
        ?>
        <div class="qr-field">
            <h3>QR Code Result: </h3>
            <center>
                <div class="qrframe" style="border:2px solid black; width:210px; height:210px;">
                    <?php echo '<img src="temp/'. @$filename.'.png" style="width:200px; height:200px;"><br>'; ?>
                </div>
    <a class="btn btn-primary submitBtn" style="width:50px; margin:1px 0;" href="download.php?file=<?php echo $filename; ?>.png ">Download QR Code</a>
            </center>
        </div>
                </table>
                        </div>
                </div>
              </div>
            </div>
</div>
        </div>   
                </form>