php - SQL 数据 : HTML Table display of column data containing multiple rows

标签 php html mysql database html-table

我什至不确定如何正确地提出问题,否则我可能会找到答案。所以,我会尽力解释。

我正在使用一个名为 SLDB 的脚本(我没有编写这些脚本),就目前而言,这些脚本的功能与宣传的一样。我存储的数据,我希望调回网站表(不是脚本设计的目的)。

目前,SLDB 的设置方式,它以这种方式存储字段:

    ID     Field    Value
    001     name    name1      
    001     size    size1   
    002     name    name2       
    002     size    size2      
    003     name    name3
    003     size    size3

在将变量传递给 database.php 脚本的主脚本中,它将名称和大小作为“字段”传递,然后将它们的每个值作为“值”传递。

我想在网页上显示的是:

    ID      Name    Size    
    001     name1   size1       
    002     name2   size2            
    003     name3   size3

事实上,我更愿意重写原始脚本和 database.php 脚本来以这种方式创建和更新表,但在开始之前,我更愿意找到一种无需重写即可完成任务的方法,如果可能的话。

我对mySQL不够熟练,无法理解如何让具有多个变量的字段(Field,Value)单独显示在一行中。目前,它是这样打印出来的:

http://wickednight.net/contests/photo-december/results.php

这是我编写的用于在 html 中显示表格的简单 php 脚本:

    <?php
    $con=mysqli_connect("localhost","***","***","***");
    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

    $result = mysqli_query($con,"SELECT * FROM sldb_data");

    echo "<table border='1' class='db-table' align='center'>
    <tr>
    <th>Name</th>
    <th>Size</th>
    </tr>";

    while($row = mysqli_fetch_array($result))
      {
      echo "<tr>";
      echo "<td>" . $row['field'] . "</td>";
      echo "<td>" . $row['value'] . "</td>";
      echo "</tr>";
      }
    echo "</table>";

    mysqli_close($con);
    ?>

我意识到,正如所写的那样,该脚本完全按照要求执行。然而,我认为我需要完成的事情是显而易见的。非常感谢任何帮助。

最佳答案

这应该有效:

SELECT t1.uuid, t1.value AS name, t2.value AS size FROM sldb_data t1, sldb_data t2
WHERE t1.uuid = t2.uuid AND t1.field = "name" AND t2.field = "size"

简短说明:

您可以在查询中为表指定不同的名称。当您的表有很长或无意义的名称时,这很好。这是在 FROM 部分完成的。 “sldb_data t1”为表“sldb_data”赋予名称“t1”。

因为我们想从同一个表中获取两个不同的行,所以我们必须使用同一个表两次,但我们必须给它两个不同的名称,否则 mysql 不知道你到底想要什么。您可以将其想象成您有两个相同的表。

现在我们在 t1 中查找 field="name"中的行,在 t2 中查找 field="size"但只匹配具有相同 uuid 的行。

在 SELECT 之后,我们只列出我们想要在结果中的字段。我们再次为字段命名。但是对于字段,您必须使用“as”。

关于php - SQL 数据 : HTML Table display of column data containing multiple rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20204350/

相关文章:

php - 带有内部选择查询的 MySQL 搜索

html - 在轮播中制作响应图像

php - 确定 $_POST ["X"] 是否为空

php - fatal error : Uncaught PDOException ("SQLSTATE[42S02]")

c# - 使用 RESTful Web 服务从 MySql 数据库中检索数据

php - Laravel 5 M2M 多态关系未设置?

php - CodeIgniter 表单验证 valid_email 不工作

获取多行时出现 PHP 错误

html - 尽管删除了旧的样式表,替换后的导航栏仍具有与旧的样式表冲突的样式表

javascript - 根据选定的 radio 输入显示和隐藏 div