首頁  >  文章  >  後端開發  >  SQL行列转换的问题

SQL行列转换的问题

WBOY
WBOY原創
2016-06-23 14:05:23797瀏覽

表结构

ID  KEY  VAL
1   sex  male
2   day  365  
4   num  12345

现在我想在这个页面 echo $a['sex'] 就显示 male  echo $a['day']  就显示  365

PHP查询mysql语句要怎么写方便随时echo呢?   


回复讨论(解决方案)

    前略    function select_db_col ($sql_string)    {    	unset($this->records);    	@mysql_free_result($this->result);    	$this->result=@mysql_query($sql_string,$this->db);			$i=1;			while($temp_rows=@mysql_fetch_array($this->result, MYSQL_ASSOC))			{				for ($j=0;$j<count($temp_rows);$j++)				{					$temp_key_name = mysql_field_name($this->result, $j);					$this->records["$temp_key_name"][$i] = $temp_rows["$temp_key_name"];				}				$i++;			}    	return $this->records;    }

这样写就是按列输出了,格式为$var[列][行]
然后
$a=array_combine($var['KEY'], $var['VAL']);

要在 mysql 中实现,需要书写存储过程
你搜索“交叉表”,就可以找到多个版本的实现算法

如果用 php 实现,可以在读取查询结果时构造
while($row = mysql_fetch_assoc($rs)) {
  $a[$row['key']] = $row['val'];
}

二楼威武,这么复杂的问题一行代码搞定。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn