如何从db中以逗号存储的单列中单独存储数据?

时间:2017-05-24 03:39:04

标签: php mysql sql

我从第一个表中获取数据这很好,我得到了输出。在此表格中,列名为“std_list'存储像1,2,3,4,5,..当我回显它给出输出1,2,3,4,5,....但是当我使用这个变量从另一个表获取数据时它只使用它1从其他表中获取数据。

<span><?php echo $user['std_list'];?></span></p>        

<?php
    //$query="SELECT * FROM events Where std_list != '0' ";
$query="SELECT * FROM events where id='$eid'";
$showdata=mysql_query($query) or die(mysql_error());
$user=mysql_fetch_array($showdata);
?>

在第一个表输出的基础上我试图从另一个表中获取数据。

          <?php
                $sid=$user['std_list'];
                //$query="SELECT * FROM events Where std_list != '0' ";
                $query="SELECT * FROM student_info where id='$sid'";
                $showstudent=mysql_query($query) or die(mysql_error());
                while($students=mysql_fetch_array($showstudent))
                {
            ?>

这是我的代码,数据存储在&#39; std_list&#39;列就像1,2,3,4,5,6 .....我希望分别获取每个数字,但根据我的代码,它只从其他表中获取第一个数字。

1 个答案:

答案 0 :(得分:0)

只需使用WHERE id IN ()

1)不推荐使用Mysql_ *尝试使用mysqli _ *

2)使用PDO或准备好的声明

$sid ='1,2,3,4,5,6';

$query="SELECT * FROM student_info where id IN (".$sid.")";

更新1:

<?php

//db connection

$servername = "localhost";  //host name

$username = "username"; //username

$password = "password"; //password

$mysql_database = "dbname"; //database name

//mysqli prepared statement 

$conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error());

mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong");

    $sid ='1,2,3,4,5,6';
    $sid = explode(',',$sid);
    $total_items = count($sid);
    $question_marks = array_fill(0, $total_items, '?');

$stmt = $conn->prepare("SELECT * FROM student_info where id IN (".$question_marks.")");
            $stmt->execute($sid);
            $get_result =$stmt->get_result();
            $row_count= $get_result->num_rows;

            if($row_count>0){

                 while($row=$get_result->fetch_assoc())
                 {
                      print_r($row);
                  }
            }

?>