duanjia4097 2014-10-16 11:28
浏览 16
已采纳

在一个数组中有多个值 - For Loop?

The Script:

<?php
        include("connect.php");    
?>    
<form method="POST" action="<?PHP echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="name1" />
    <input type="text" name="name2" />
    <input type="text" name="name3" />
    <input type="submit" name="submit" />
</form>    
<?php
if(isset($_POST['submit'])){    
    $name1 = $_POST['name1'];
    $name2 = $_POST['name2'];
    $name3 = $_POST['name3'];

    $myarray = array($name1, $name2, $name3);   

    for($i = 0; $i < count($myarray); $i++){

        $tqs = "SELECT `id` FROM `images` WHERE `image_file` IN ('" . $myarray[$i] . "')";
        $tqr = mysqli_query($dbc, $tqs) or die(mysqli_error($dbc));

        $fetch_array = array();
        $row = mysqli_fetch_array($tqr);
        $fetch_array[] = $row['id'];

        print_r($fetch_array);    
    }    
}    
?>

The script prints:

Array ( [0] => 558 ) Array ( [0] => 559 ) Array ( [0] => 560 ) 

How to have these values inside one array?

E.g.:

Array ( [0] => 558 [1] => 559 [2] => 560 )

The image file names come from the form and the values come from the ID column of the "images" table. And I am looking to have the selected stored inside one array.

  • 写回答

2条回答 默认 最新

  • dqs13465424392 2014-10-16 11:31
    关注

    The issue is you're destroying the array and recreating it on each iteration. Move that line out of the loop, and don't print the array on each iteration:

    $fetch_array = array(); // only create the array once
    
    for($i = 0; $i < count($myarray); $i++){
        $tqs = "SELECT `id` FROM `images` WHERE `image_file` IN ('" . $myarray[$i] . "')";
        $tqr = mysqli_query($dbc, $tqs) or die(mysqli_error($dbc));
    
        $row = mysqli_fetch_array($tqr);
        $fetch_array[] = $row['id'];
    }
    
    print_r($fetch_array); // only output once
    

    Side note: your query is vulnerable to SQL Injection. Switch to a Prepared Statement with bound parameters.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。