繁体   English   中英

PHP MySQL同时获取结果和表的列名

[英]PHP MySQL getting both the result as well as the column name of the table

我一直都在获取数据库的结果,但是从来没有得到列名,现在我遇到了同时需要列名和结果的情况。

我有一个简单的代码,显示列名,并在其旁边显示结果,结果为= 1。

假设我的桌子看起来像这样

  |  Science  |   Maths   |   Biology   |   English   |
---------------------------------------------------------
  |     1     |     0     |     0       |      1      |

所以基本上我想要的是

Table Name       |      Results
---------------------------------
Science          |          1
English          |          1

我在网上搜索并发现了INFORMATION_SCHEMA.COLUMNS的用法,但这似乎不符合我想要的方式。 我以某种方式需要同时包含INFORMATION_SCHEMA.COLUMNS和select * WHERE user = $ user kinda之类的东西。

我的方法。

 $i = 0;

$result = mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'trophy' WHERE UPPER(username) = UPPER('$searchuser')");
    while($row = mysql_fetch_array($result))
{
    echo $row['COLUMN_NAME'];
    echo '-'
    echo $row[$i];
    $i++;
}

解决此问题的最佳方法可能是通过获取关联数组并使用其键。 从您的示例看来,您总是希望得到1个结果行,但是为了防止出现问题,我还是会添加LIMIT 1 您可以执行以下操作:

$result = mysql_query("SELECT * FROM trophy WHERE username = '$searchuser' LIMIT 1");
$result = mysql_fetch_assoc($result);
foreach ($result as $name => $value)
  echo $name . '-' . $value;

请注意,虽然不建议使用mysql_*函数。 您应该改用mysqli_*PDO 您可以在这里进行比较。

while ($row = mysql_fetch_array($result, **MYSQL_BOTH**)) {
    printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}

http://php.net/manual/en/function.mysql-fetch-array.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM