【问题标题】:Wanna try some looping for tag <option></option>想为标签 <option></option> 尝试一些循环
【发布时间】:2018-06-04 15:14:54
【问题描述】:

在这里,我遇到了一些我认为对我来说是独一无二的案例。 这是问题,我想循环一些标签 3次。循环是有效的,但是当它被输入到数据库时...... 只有 1 个循环有效。

这里是截图,

The value of loop

Result of loop

<td>
    <label for="baris">Baris</label>
    <select name="baris">
        <option value="">--</option>
        <?php 
            for ($i2=A; $i2 < F; $i2++) { 
                echo "<option name='".$i2."'>".$i2."</option>";
            }
         ?>
    </select>
</td>
<td>
    <label for="kolom">Kolom</label>
    <select name="kolom">
        <?php 
            for ($i3=1; $i3 <= 10; $i3++) { 
                echo '<option name="'.$i3.'">'.$i3.'</option>';
            }
         ?>
    </select>
</td>

此代码也用于输入数据库

<?php     
                if(isset($_POST['masukan'])){
                    $nama = htmlspecialchars($_POST['nama']);
                    $email = htmlspecialchars($_POST['email']);
                    $jk = htmlspecialchars($_POST['jk']);
                    $notlp = htmlspecialchars($_POST['notlp']);

                    $queryinput = mysqli_query($link, "UPDATE tb_customer 
                                                        SET nama='$nama',
                                                            email='$email',
                                                            notlp='$notlp',
                                                            jk='$jk'

                                                        WHERE id_cust='$id_cust1'    
                                                        ");

                    $querytampil = mysqli_query($link, "SELECT * FROM tb_customer WHERE id_cust ORDER by id_cust desc limit 1");
                    $dcus = mysqli_fetch_assoc($querytampil);
                    $id_cust = $dcus['id_cust'];

                    $querytampil2 = mysqli_query($link, "SELECT max(num_ticket)AS num  FROM tb_ticket");
                    $dnumti = mysqli_fetch_assoc($querytampil2);
                    $num_ticket = $dnumti['num'];
                    $hasil = $num_ticket + 1;

                    for ($i5= 1; $i5 <= $p; $i5++) { 

                    $baris = htmlspecialchars($_POST['baris']);
                    $kolom = htmlspecialchars($_POST['kolom']);
                        if($queryinput){
                            $id_flight = $data['id_flight'];
                            $queryinput2 = mysqli_query($link, "INSERT INTO tb_ticket VALUES('','$id_cust','$id_flight','$hasil','','','','','$id_dest','$id_ori', '$baris', '$kolom')");

                            if ($queryinput2) {
                                $querytampil3 = mysqli_query($link, "SELECT * FROM tb_ticket order by num_ticket desc limit 1");
                                $dtick = mysqli_fetch_assoc($querytampil3);
                                $nt = $dtick['num_ticket'];
                                echo "<script>alert('Succes.')</script>";
                                echo '<script>window.location="pembayaran.php?num_ticket='.$nt.'&&id_cust='.$id_cust.'"</script>';
                            }else{
                            echo "<script>alert('Your data cannot send.')</script>";
                            }
                        }else{
                            echo "<script>alert('Your data cannot send, please check your input data.')</script>";
                        }
                    }
                }
            ?>

英语不好抱歉*

【问题讨论】:

  • 请不要发布代码图片。原始文本要好得多
  • 发布代码时,请同时包含实际写入数据库的内容。
  • 实际工作...但输入到数据库后只有 1 个循环工作
  • @IsThisJavascript 我的错误,将警告误认为是错误。傻我:)
  • @Alberiansyah 我们仍然想念您如何将数据输入数据库。这段代码所做的只是输出一些文本。

标签: php html sql loops


【解决方案1】:

如果我猜对了;这是因为您没有将 html 变量设置为数组。

您需要进行的第一个更改是在您的视图页面中。

&lt;select name="baris"&gt; -> &lt;select name="baris[]"&gt;

&lt;select name="kolom"&gt; -> &lt;select name="kolom[]"&gt;

这会将您的 $_POST['baris']$_POST['kolom'] 设置为数组。

既然你已经在循环...

for ($i5= 1; $i5 <= $p; $i5++) { 
    $baris = htmlspecialchars($_POST['baris']);
    $kolom = htmlspecialchars($_POST['kolom']);    

这玩意儿现在需要访问相关的数组...而变成...

for ($i5= 1; $i5 <= $p; $i5++) { 
    $baris = htmlspecialchars($_POST['baris'][$i5]);
    $kolom = htmlspecialchars($_POST['kolom'][$i5]);      

【讨论】:

  • 太棒了,请按upvote/downvote按钮下的勾号,这样这个帖子就可以解决&&关闭:)
  • 只是一个友好的通知; htmlspecialchars 不应用于数据库清理。请阅读此主题on how to prevent mysqli injection
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-09-17
  • 2018-12-22
相关资源
最近更新 更多