SELECT * FROM * TABLENAMES

时间:2015-05-12 18:07:02

标签: php mysql sql

我想制作一个选择陈述,但它只是不起作用这是我想做的事情

SELECT * 
from table 
WHERE FROM any ROW Pick that $value_id 
and indentify the column and display the column_name into a variable

这是我尝试过的代码:

$id = $_GET['id'];
$sql = mysql_query("SELECT * from table2 WHERE ANYROW_VALUE=$id");
$selected = mysql_fetch_assoc($sql);
$ROW_NAME=mysql_field_name($selected);

此外,ID会出现在不同的COLUMNS中,所以我想显示所有列都是{或WHILE ...但首先我想知道如何才能做到这一点,谢谢!

有一点不要混淆$ id不是表id只是1-8000的编号值,也就是那个数字可以在同一行但不在同一列上,所以当我制作表时我将每列设置为唯一的一件事,这些列随着开发变得越来越大,所以它可能是1-50列,这就是为什么我问这个问题,如果列大小没有改变但是确实如此......谢谢!

谢谢你们所有人来到这里,这就是桌子粗糙的样子: http://i.imgur.com/rQPBZrv.png

1 个答案:

答案 0 :(得分:0)

如果要向数据库添加越来越多的列,则应该重新考虑数据库设计。

要解决此问题,您需要运行两个与php混合的查询

您的第一个查询

mysql_query("SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename'");

然后,您将遍历列名以构建第二个查询的WHERE我建议将列名插入array,以便您可以implode使用

foreach($result as $columnName){
    $columnArray[] = '`' . $columnName . '` = ' . $id;
}

然后你会运行你的查询

mysql_query("SELECT * FROM `yourtablename` WHERE " . implode(' OR ', $columnArray));