将SQL列中的每个项目选择为数组PHP

时间:2017-10-12 17:40:06

标签: php mysql mysqli

我已经尝试过一些小墙。

我在SQL中的数据库中有一个名为' projects'的表。

我的问题是我似乎无法选择特定列中的每一行。

这是我迄今为止与此问题相关的代码(请记住,' $ conn'是与SQL数据库的连接,以及第二行的include命令只是包括那个连接):

            //CONNECTION FILE   
        include "../include/dbh-inc.php";
        //ASSIGNING QUERY VALUES TO VARIABLES
        $q1 = mysqli_query($conn,"SELECT pid FROM projects;");
        $q2 = mysqli_query($conn,"SELECT ptitle FROM projects;");
        $q3 = mysqli_query($conn,"SELECT plink FROM projects;");
        //SETTING ARRAYS FROM VARIABLES
        $ids = mysqli_fetch_array($q1);
        $titles = mysqli_fetch_array($q2);
        $links = mysqli_fetch_array($q3);

        mysqli_close($conn);
        file_put_contents("newtest.txt","$titles\n");
        foreach($titles as $title) {
            file_put_contents("newtest.txt","$title\n", FILE_APPEND); //Testing
        }
        if(count($ids) > 0) {
            file_put_contents("TEST.txt","");
            for($i = 0; $i < count($ids)-1; $i+=1) {            
                $count = count($ids);
                $title = $titles[$i];
                $id = $ids[$i];
                $link = $links[$i];
                file_put_contents("TEST.txt","$i: $title, $id ($count), $link\n",FILE_APPEND);
                echo("
                <div class=\"projlink\">
                <a href=\"$link\" style=\"width:190px;height:90px\">
                <h2>$title</h2>
                </a>
                </div>
                ");

            }
        }
        else {
            echo("
                <h2>Nothing here currently!<br>Be patient!</h2>
            ");
        }

有什么想法吗?

谢谢! - 拉斐尔

1 个答案:

答案 0 :(得分:3)

您只使用mysqli_fetch_array获取一行。此外,您可以在一个查询中获取所有列:

$q1 = mysqli_query($conn,"SELECT pid, ptitle, plink FROM projects;");
$rows = mysqli_fetch_all($q1, MYSQLI_ASSOC);

如果你没有mysqli_fetch_all那么:

while($rows[] = mysqli_fetch_assoc($q1));

然后循环$rows并使用列:

foreach($rows as $row) {
    echo $row['pid'] . ' ' . $row['ptitle'] . ' ' . $row['plink'];
}

如果你真的需要单独的数组(这很少需要):

$ids = array_column($rows, 'pid');
$titles = array_column($rows, 'ptitle');
$links = array_column($rows, 'plink');