[英]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.