2015-11-08 66 views
0

我有一个表中选择作为列的表的主索引,Here is my table image如何在选择命令

我的查询Select * from categories我的问题是如何我可以提取或上面的查询执行后回声我的表中的主索引。

<?php echo "Primary field is =".$rec['primary_field_name']; ?>
而从同一查询的输出是

主要领域是= CAT_ID提前

感谢

+0

你需要列名??? –

+0

是的,我需要主键+从单个选择查询行的列名称 –

回答

1

我想这应该做你想要什么:

<?php 
    $conn = mysql_connect($dbhost, $dbuser, $dbpass); 
    mysql_select_db($dbname); 

    $sql='select * from `categories`;'; 

    $res=mysql_query($sql, $conn); 
    if($res){ 
     while($rs = mysql_fetch_object($res)){ 
      echo $rs->cat_id . ' ' . $rs->cat_desc .' '. $rs->cat_status.' '.$rs->cat_image.'<br />'; 
     } 
    } 

    mysql_free_result($res); 
    mysql_close($conn); 
?> 

由于我误解了你的问题,下面的查询可能对你很感兴趣。

select `column_name` 
    from `information_schema`.`columns` 
    where (`table_schema` = database()) 
    and (`table_name` = 'categories') 
    and (`column_key` = 'pri'); 

虽然我不知道如何在标准SQL查询中获取主键的名称。

你可以尝试以下的为“多合一”的解决方案:

select *, 
    (select group_concat(`column_name`) 
     from `information_schema`.`columns` 
     where (`table_schema` = database()) 
     and (`table_name` = 'categories') 
     and (`column_key` = 'pri')) as 'PrimaryKey' 
from `categories`; 

我在子查询中使用group_concat,因为它极有可能有一个composite Primary Key - 没有group_concat你很可能得到一个错误。

+0

谢谢你的回答,但我将如何回显我从这个 –

+0

同一个表的主要名称只是'echo $ rs-> cat_id' @RamRaider所说的 – aldrin27

+0

对不起,我不询问有关cat_id的值,我要求回显名称的主要字段或索引 –

0

使用mysql_fetch_assoc用于取得列或值

$sql='select * from `categories`'; 
$query=mysql_query($sql, $conn); 
while($row = mysql_fetch_assoc($query)) 
{ 
    foreach($row as $key => $value) 
    { 
     echo $key;//For print column name 
     echo $value;//For print value 
    } 
} 
+0

我需要获取主ID的列名称我的主索引 –

+0

使用** $ key **获取列名称 –