我会尽力解释这一点。我有一个包含100个值的表,两个字段:ID和Name。就本示例而言,ID并不重要。

我想做的是选择所有记录,并在五列中显示它们,但我需要它们按字母顺序从上到下排列:

例:
表数据具有以下内容:

AAAA
AAAB
AAAC
AAAD
AAAE
AAAF


我需要显示如下数据:

AAAA     AAAD
AAAB     AAAE
AAAC     AAAF


那有意义吗?

如果那不可能,那么我来考虑:AAAA AAAB AAAC AAAD AAAE
                                          美国空军

无论哪种方式,最简单的一种。

好的,这是我现在得到的错误:


  [2013年12月2日22:55:19星期一] [错误] [客户端xx.xx.xx.xx] PHP警告:mysql_fetch_assoc()期望参数1为
   资源,在第35行的/usr/home/user/www/data/test/testing.php中给出的字符串
  [2013年12月2日22:55:19星期一] [错误] [客户端xx.xx.xx.xx] PHP注意:未定义的变量:结果是/usr/home/user/www/data/test/testing.php 42


以下是相关代码:

<?php
    $username = "user";
    $password = "password";
    $hostname = "localhost";

    //connection to the database
    $dbhandle = mysql_connect($hostname, $username, $password)
      or die("Unable to connect to MySQL");

    $selected = mysql_select_db("equine",$dbhandle)
      or die("Could not select Database");

    $query = 'select * from breeds';

    while ($row = mysql_fetch_assoc($query)) {
        $result[] = $row;
    }

    ?>
    <table><tr><td>
    <?php
    for ($i = 0; $i < count($result); $i++) {
        if ($i % (count($result) / 5) == 0) {
            echo "</td><td>";
        }
        echo "$result <br />";
    }
?>
</td></tr></table>


好的,这是现在的错误,我确保我直接剪切并粘贴了您的内容。


  [2013年12月3日星期二11:43:12] [错误] [客户端xx.xx.xx.xx] PHP解析错误:语法错误,意外的'[',
   在第45行的/usr/home/user/www/data/test/testing.php中期望']'


好吧,我进一步介绍了以下内容:


  Array [name] Array [name] Array [name] Array [name] Array [name] Array [name] Array [name]


好的,我明白了,我将在几分钟后发布代码,我需要对其进行清理。

好吧,我以为我已经解决了。它可以打印,但不限于每行5个数据元素。

这是代码:

<?php
    $username = "username";
    $password = "password";
    $hostname = "localhost";

    //connection to the database
    $link = mysqli_connect($hostname, $username, $password,"equine")
     or die("Error " . mysqli_error($link));

    // connect to database, etc ...
    $query = "SELECT name FROM breeds" or die("Error in the consult..." . mysqli_error($link));

    $result = $link->query($query);

    while($row = mysqli_fetch_array($result)) {
             // echo $row["name"] . "<br>";
       $myResult[] = $row;
    }

    ?>
    <table border="1"><tr><td>
    <?php
    for ($i = 0; $i < count($myResult); $i++) {
       if ($i % (count($myResult) / 5) == 0) {
          echo "</td><td>";
       }
       echo $myResult[$i]['name']. "<br />";
    }
    ?>
</td></tr></table>


但是输出看起来像这样:

<table border="1"><tr><td>
</td><td>Brittinee<br /></td><td>Pit Bull<br /></td><td>Black Lab<br /></td><td>Mutt<br /></td><td>Great Dane<br /></td><td>Doberman<br /></td><td>Shepard<br /></td></tr></table>


除了数据元素应该排成一排,我知道它不会在此处显示。

最佳答案

您的第二个选择是最简单的。

要实现您的第二个选择,这里是SQL Fiddle,它演示了以下查询:

SELECT GROUP_CONCAT(m.Name ORDER BY m.Name SEPARATOR ' ')  AS NameConcat
FROM mytable as m

关于php - PHP mysql按列正确构造表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20342264/

10-12 12:22
查看更多