【问题标题】:How to use PHP foreach with MySql如何在 MySql 中使用 PHP foreach
【发布时间】:2015-11-22 12:19:49
【问题描述】:

我想遍历 mysql 表中的每个结果,并为每一行生成 html div。数据库表如下所示:

--------------------------------
  id   |  color  | width | img
--------------------------------
   1   |  red    |  550  | url
--------------------------------
   2   |  black  |  650  | url
--------------------------------

我知道这可能如何工作,但不确定语法。以下是我的尝试。

<?php
// connect to the database

$rows = // get rows from the db table

foreach ($rows) {
<div style="background-color:$color;width:$width;">
    <img src="$img">
</div>
}

【问题讨论】:

  • 那有什么困难呢? (不要说你想要一个例子。周围有数十亿个。请参阅手册。)
  • 除非您的示例被故意过度简化,否则您需要echo(); for each 循环中的内容才能将其输出到屏幕上。
  • @scunliffe 我会想象一个 sql 命令 和一个 函数调用来向数据库服务器发出该查询 和一个 函数调用检索结果集 也会派上用场。
  • How 'foreach' actually works 的可能重复项
  • 修正语法错误后再回来。与此同时,我投票结束这个问题。

标签: php html mysql database


【解决方案1】:
foreach($result as $key=>$val){
     var_dump($val) ;
}

你可以试试;并且你必须确定 mysql $row 是数组!

【讨论】:

    【解决方案2】:

    这是一个简单查询的简单示例。

    <?php
    
    $mysqli = new mysqli("db_host", "db_user", "db_password", "db_name");
    
    // check connection
    if ($mysqli->connect_errno) {
        die("Connect failed: ".$mysqli->connect_error);
    }
    
    $query = "SELECT * FROM imgs";
    $result = $mysqli->query($query);
    
    while($row = $result->fetch_array()){
    echo '<div style="background-color:'.$row[color].';width:'.$row[width].';"><img src="'.$row[img].'"></div>';
    }
    

    【讨论】:

      【解决方案3】:

      这是一个简单的循环,它将在 div 中显示图像。

      <?php
      for($i = 0; $i < 3; $i++){
          echo "<div style='border: 1px solid black;'>";
          echo "<img src='http://screenrant.com/wp-content/uploads/James-Earl-Jones-Darth-Vader-Star-Wars-Rebels.jpg'>";
          echo "</div>";
      }?>
      

      建议:当您想使用 echo 显示 HTML 脚本时,请注意何时在 echo 语句中使用双引号和单引号,否则它将无法正确显示。此外,在使用 foreach 处理结果查询时,请使用正确的语法。

      【讨论】:

        【解决方案4】:

        假设数据库的输出与$rows 相同,您的代码应如下所示。显然,您可以改进echo 语句的串联。

        <?php
        
        $rows =  [
            'row1' => [
                'color' => 'red',
                'width' => '550px',
                'img' => 'http://www.google.com.au/images/srpr/logo11w.png'
            ],
            'row2' => [
                'color' => 'black',
                'width' => '650px',
                'img' => 'http://www.google.com.au/images/srpr/logo11w.png'
            ],
        ];
        
        foreach ($rows as $key => $row) {
            $color = $row['color'];
            $image = $row['img'];
            $width = $row['width'];
        
            echo "<div style=\"background-color:$color;width:$width;\">";
            echo "<img src=\"$image\">";
            echo "</div>";
        }
        
        ?>
        

        这是一个有效的phpfiddle

        【讨论】:

          猜你喜欢
          • 2015-12-27
          • 1970-01-01
          • 2016-05-17
          • 1970-01-01
          • 2016-09-08
          • 2023-03-24
          • 2016-05-01
          • 2013-08-25
          • 2014-12-09
          相关资源
          最近更新 更多