簡體   English   中英

PHP,MySQL,如何獲取動態sql html表循環中的字段名稱?

[英]php, mysql, how can I get the field name inside my dynamic sql html table loop?

我想根據循環中的字段名稱執行不同的操作。 我的代碼根據sql查詢中使用的字段動態生成html表。 如果循環中的字段是主鍵,我想產生指向特定頁面的鏈接...有什么想法嗎?

我已經在此處標記了需要獲取字段名稱的位置。

    if (mysql_num_rows($result)>0) {
        //loop thru the field names to print the correct headers
        $i = 0;

        while ($i < mysql_num_fields($result)) {
            $out .= "<th bgcolor='#CFCFCF'><font size=2>". mysql_field_name($result, $i) . "</font></th>";
            $i++;
        }
        echo "</tr>";

        //display the data
        while ($rows = mysql_fetch_array($result,MYSQL_ASSOC)) {
            $out .= "<tr>";
            foreach ($rows as $data) {
                //HERE
                $out .= "<td bgcolor='#DCDCDC'><font size=2>". $data . "</font></td>";
            }
        }
    }

我認為唯一的方法是SHOW COLUMNS FROM tablename;一個SHOW COLUMNS FROM tablename; 事先查詢。

結果中的“鍵”列將為您提供每一列的鍵狀態。 您可以從那里找到並保存主鍵的位置,並相應地輸出該列的HTML。

嘗試這個:

if (mysql_num_rows($result)>0) {
    //loop thru the field names to print the correct headers
    $i = 0;

    while ($i < mysql_num_fields($result)) {
        $out .= "<th bgcolor='#CFCFCF'><font size=2>". mysql_field_name($result, $i) . "</font></th>";
        $i++;
    }
    echo "</tr>";

    //display the data
    while ($rows = mysql_fetch_array($result,MYSQL_ASSOC)) {
        $out .= "<tr>";
        foreach ($rows as $colName=>$data) {
            if($colName == 'keyname'){
                doStuff();
            }else{
                $out .= "<td bgcolor='#DCDCDC'><font size=2>". $data . "</font></td>";
            }
        }
    }
}

如果您想給一個特定的col,您可以從mysql取一個特定的名稱,就像這樣:

SELECT table.id as 'otherName' , table.phone as 'PhoneNumber'  FROM table

然后結果數組看起來像那樣

array( "othername" => 1, "PhoneNumber" => '0035 2500 65887')

編輯:如果您需要確定某個ColName是否為主鍵,請使用此鍵

if( mysql_num_rows(mysql_query("'SHOW INDEXES FROM day WHERE Column_name = '$colname' AND Key_name = 'PRIMARY'")) > 0){
    //is a primary key
}else{
    //is not a primary key
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM