简化php代码-连接到数据库

简化php代码-连接到数据库,php,mysql,Php,Mysql,这里我有一个php代码,它连接到一个数据库,按id选择一行,并使用while循环从这一行创建一个关联数组。我是否必须一遍又一遍地编写此代码才能根据id从其他行创建数组?也许有机会以某种方式简化此php代码?请看我的密码。顺便说一句,我是新的php <?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = ''; $db = '_erica'; $conn = new mysqli($dbhost, $dbuser, $dbpa

这里我有一个php代码,它连接到一个数据库,按id选择一行,并使用
while
循环从这一行创建一个关联数组。我是否必须一遍又一遍地编写此代码才能根据id从其他行创建数组?也许有机会以某种方式简化此php代码?请看我的密码。顺便说一句,我是新的php

<?php    
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$db = '_erica';
$conn = new mysqli($dbhost, $dbuser, $dbpass,$db);

$sql1 = "SELECT * FROM pics WHERE id = 1;";
$sql2 = "SELECT * FROM pics WHERE id = 2;";
$sql3 = "SELECT * FROM pics WHERE id = 3;";
$sql4 = "SELECT * FROM pics WHERE id = 4;";
$sql5 = "SELECT * FROM pics WHERE id = 5;";
$sql6 = "SELECT * FROM pics WHERE id = 6;";
$result1 = $conn->query($sql1);
$result2 = $conn->query($sql2);
$result3 = $conn->query($sql3);
$result4 = $conn->query($sql4);
$result5 = $conn->query($sql5);
$result6 = $conn->query($sql6);

while($row1 = $result1->fetch_assoc()) {
    $bcgrnd = $row1["link"];
}

while($row2 = $result2->fetch_assoc()) {
    $recipes = $row2["link"];
}

while($row3 = $result3->fetch_assoc()) {
    $header = $row3["link"];
}

while($row4 = $result4->fetch_assoc()) {
    $menu = $row4["link"];
}
while($row5 = $result5->fetch_assoc()) {
    $beauty = $row5["link"];
}

while($row6 = $result6->fetch_assoc()) {
    $kids = $row6["link"];
}

?>

您可以在一个查询中完成此操作:

$sql = "SELECT * FROM pics WHERE id IN (1,2,3,4,5,6);";
$result = $conn->query($sql);
然后你可以像这样循环所有的结果:

$data = array();
while ($row = $result->fetch_assoc()) {
    $id = $row["id"];
    $link = $row["link"];
    $data[$id]["link"] = $link;

    // add more fields if you want
}
例如,要访问ID为1的链接,只需执行以下操作:

$data[1]["link"];

您可以在一个查询中执行此操作:

$sql = "SELECT * FROM pics WHERE id IN (1,2,3,4,5,6);";
$result = $conn->query($sql);
然后你可以像这样循环所有的结果:

$data = array();
while ($row = $result->fetch_assoc()) {
    $id = $row["id"];
    $link = $row["link"];
    $data[$id]["link"] = $link;

    // add more fields if you want
}
例如,要访问ID为1的链接,只需执行以下操作:

$data[1]["link"];
MySQL函数在给定参数中查找匹配项,您可以使用它

select pics where id IN(1,2,3,4,5,6) 
MySQL函数在给定参数中查找匹配项,您可以使用它

select pics where id IN(1,2,3,4,5,6) 
试试这个

 <?php    
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $db = '_erica';
    $conn = new mysqli($dbhost, $dbuser, $dbpass,$db);

    $sql = "SELECT * FROM pics WHERE id IN (1,2,3,4,5,6);";

    $result = $conn->query($sql);

    while($row = $result->fetch_assoc()) {
        $bcgrnd[$row["id"]][] = $row["link"];
    }

    ?>

试试这个

 <?php    
    $dbhost = 'localhost';
    $dbuser = 'root';
    $dbpass = '';
    $db = '_erica';
    $conn = new mysqli($dbhost, $dbuser, $dbpass,$db);

    $sql = "SELECT * FROM pics WHERE id IN (1,2,3,4,5,6);";

    $result = $conn->query($sql);

    while($row = $result->fetch_assoc()) {
        $bcgrnd[$row["id"]][] = $row["link"];
    }

    ?>

为什么不尝试一个查询并将其限制为6个结果,只需拉取6个结果就可以占用更少的资源:

SELECT * FROM `pics` ORDER BY `[PRIMARY KEY]` LIMIT 6

为什么不尝试一个查询并将其限制为6个结果,只需拉取6个结果即可占用更少的资源:

SELECT * FROM `pics` ORDER BY `[PRIMARY KEY]` LIMIT 6

您可以为此编写一个或两个简单函数。此外,请注意,您的代码容易受到攻击。下面是一个示例,说明如何通过一些简单的功能实现这一点:

<?php
    function DB() {
        $dbhost = 'localhost';
        $dbuser = 'root';
        $dbpass = '';
        $db = '_erica';
        return new mysqli($dbhost, $dbuser, $dbpass,$db);
    }

    function query($id) {
        $query = "SELECT * FROM `pics` WHERE `id` = $id";
        return DB()->query($query);
    }

    $result = query(1); // will fetch records for ID 1
    while($row = $result->fetch_assoc()) {
        $bcgrnd = $row["link"];
    }

    $result = query(2); // will fetch records for ID 2
    while($row = $result->fetch_assoc()) {
        $bcgrnd = $row["link"];
    }
?>


通过使用这种方法,你可以为一个特定的ID获取数据。如果你不喜欢这个解决方案,考虑使用.< /p> ,你可以为此编写一个或两个简单函数。此外,请注意,您的代码容易受到攻击。下面是一个示例,说明如何通过一些简单的功能实现这一点:

<?php
    function DB() {
        $dbhost = 'localhost';
        $dbuser = 'root';
        $dbpass = '';
        $db = '_erica';
        return new mysqli($dbhost, $dbuser, $dbpass,$db);
    }

    function query($id) {
        $query = "SELECT * FROM `pics` WHERE `id` = $id";
        return DB()->query($query);
    }

    $result = query(1); // will fetch records for ID 1
    while($row = $result->fetch_assoc()) {
        $bcgrnd = $row["link"];
    }

    $result = query(2); // will fetch records for ID 2
    while($row = $result->fetch_assoc()) {
        $bcgrnd = $row["link"];
    }
?>


通过使用这种方法,你可以为一个特定的ID获取数据。如果你不喜欢这个解决方案,考虑使用.< /P>从PICS中选择ID(在1,2,3,4,5,6)中;而不是

$bcgrnd[$row1[“id”][]=$row1[“link”]
@Kirill别忘了接受帮助您从id所在的图片(1,2,3,4,5,6)中选择*的答案;而不是
$bcgrnd[$row1[“id”][]=$row1[“link”]@Kirill别忘了接受对你帮助最大的答案