首页 > 解决方案 > 使用 PHP 从数据库中获取行,从行中获取值并插入 HTML

问题描述

我想从数据库中获取符合条件的行,从每一行获取特定值并将这些值粘贴到不同的 HTML 中。
例如,来自标准的数据库匹配 = id 为 3、7 和 30
的行我想从第 3 行中获取“名称”并将其放入<div id='firstResult'></div>
然后从第 7 行中获取“名称”并将其放入<div id='secondResult'></div> 最后,我想采用“从行 id 30 中命名'并将其放入<div id='thridResult'></div>

我知道如何将它们放在 HTML 中,我正在努力处理 PHP 部分。到目前为止,我得到了:

<?php
    include_once 'databaseconn.php';

    $ramResult = $_POST['ram'];
    $graphcardResult = $_POST['graphcard'];
    $processorResult = $_POST['processor'];
    $sql = "SELECT * FROM laptops WHERE ram = '$ramResult' AND graphcard = '$graphcardResult' AND processor = '$processorResult' ;"; 
    $result = mysqli_query($conn, $sql);  
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            $nameResult = $row['name'];
            $ramResult = $row['ram'];
            $graphcardResult = $row['graphcard']; 
            $processorResult = $row['processor']; 
            $imgResult = $row['img'];  
            $imgId = $row['id'];
        }
    }
?>

我想给结果数字,比如第一个结果是 1,第二个是 2,等等,然后$firstResult['name']不确定这是否是正确的方法,因为我是新手,我很难弄清楚该怎么做这个。我希望你能把我推向正确的方向。

为了完成,DB:

id | name | ram | graph | processor | url
1  | data | data| data  | data      | data
2  | data | data| data  | data      | data
3  | data | data| data  | data      | data

ETC..

标签: php

解决方案


从概念上讲,您可以通过多种方式实现这一目标。

    <?php
    include_once 'databaseconn.php';

    $ramResult = $_POST['ram'];
    $graphcardResult = $_POST['graphcard'];
    $processorResult = $_POST['processor'];
    $sql = "SELECT * FROM laptops WHERE ram = '$ramResult' AND graphcard = '$graphcardResult' AND processor = '$processorResult' ;"; 
    $result = mysqli_query($conn, $sql);
    $list = mysqli_fetch_all ($result, MYSQLI_NUM); //RETURN INDEXED ARRAY
    //CREATES AN EMPTY STRING
    $output = "";
    if(count($list) > 0){ //CHECK IF THERE IS A RESULT.
    //if ($result->num_rows > 0) {
        for($i=0; $i < count($list); $i++){
        //while($row = $result->fetch_assoc()) {
            $nameResult = $list[$i]['name'];
            $ramResult = $list[$i]['ram'];
            $graphcardResult = $list[$i]['graphcard']; 
            $processorResult = $list[$i]['processor']; 
            $imgResult = $list[$i]['img'];  
            $imgId = $list[$i]['id'];
            //CONDITIONALLY CHECK VALUE AND ALTER OUTPUT
            if($i == "0"){
              // .= operator will append the string to the end of the existing string. 
              $output .= "<div id='firstResult'>".$nameResult."</div>";
            }elseif($i == "1"){
              $output .= "<div id='secondResult'>".$nameResult."</div>";
            }elseif($i == "2"){
              $output .= "<div id='thirdResult'>".$nameResult."</div>";
            }else{
              /*... default output ... */
            }
        }
      //ONCE OUTPUT IS BUILT, You can echo it, or use it in your template. 
      echo $output;

    }
?>

推荐阅读