PHP如何将数据库表加一列中的某列数据一个一个循环取出并打印

PHP如何取到mysql数据库中某个字段的值
PHP如何取到mysql数据库中某个字段的值
11:57&|&分类:&|&浏览1339次
我想要取到meta_value 这个字段的值,但结果返回为空,数据表见图,查询语句如下,请大家帮忙这个语句要如何写,PHP新手求教~~~
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";
$result=mysql_query($sql);
这是我数据库连接字段的写法
$mysql_server_name="url";&
&&&&$mysql_username="aaaa";&
&&&&$mysql_password="aaaa";&
&&&&$mysql_database="aaaa";&&&&&
&&&&$conn=mysql_connect($mysql_server_name,&$mysql_username,
&&&&&&&&&&&&&&&&&&&&&&&&$mysql_password);
post_id&=1加上引号也是一样的
14:28网友采纳
查询成功了,但是你没有把查询的值赋给变量,所以你肯定得不到值,
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";
$result=($sql);
while ($row = mysqli_fetch_assoc($result))//用myql_fetch_assoc函数取值,可以确保多行数据时能循环输出,mysql_fetch_array只能取得最前面的一行数据
echo $row['meta_value'];//输出你想要的字段值
&|来自团队&|采纳率49%
按默认排序|
其他3条回答
14:31|六级
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
echo $row["meta_value"]; //或者echo $row[0];也可以,因为这里你就查了这一个字段
12:11|三级
$sql = "SELECT meta_value FROM wp_postmeta WHERE meta_key = 'img-link' and post_id =1";
$result=mysql_query($sql);
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo $row["meta_value"];
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。PHP以指定字段为索引返回数据库所取的数据数组
转载 & & 作者:
本文与大家分享几个使用得PHP编程技巧,有些技巧是在看别人代码的时候学来的,有些是自己总结的,下面为大家介绍下以特定字段为索引,返回数据库取的数据数组,感兴趣的朋友可以了解下哈
很多情况下,我们从接触一个新的项目到开发完成,再回过头来仔细浏览一下自己写的代码,很多都是我们以前用熟练的代码。所以,在完成每个新项目的时 候,适当的做些项目总结、代码总结,或许你会在以后的项目中用得着,极有可能获得意外的收获,比如:代码优化,想到了更好、速度更快的实现方法等等。 牛逼的程序开发者有时候不在于代码量的多少,而是程序的代码简洁性、逻辑复杂但实现的方便性,这些才说明是否是一位好的程序员。我们不做日夜加班到深夜,拼代码量的程序员! 这篇和大家分享几个使用得PHP编程技巧,有些技巧是在看别人代码的时候学来的,有些是自己总结的。 以特定字段为索引,返回数据库取的数据数组 举个例子容易些: 假如你要统计指定站点从其它网站来的流量情况,并且做一个小后台,查看每个网站每天带来的流量情况。我们先建2张数据表: 表一、站点配置表(只统计这些网站的流量)
代码如下: CREATE TABLE `site_config` ( `id` smallint(5) unsigned NOT NULL auto_increment COMMENT '主键,自增', `sid` smallint(5) unsigned NOT NULL COMMENT '网站ID', `site_url` varchar(128) NOT NULL COMMENT '网站URL地址', `site_name` varchar(80) NOT NULL COMMENT '网站名称', `add_time` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT '添加时间', PRIMARY KEY (`id`), UNIQUE KEY `adid` (`sid`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='站点配置表';
表二、站点流量统计表(来一个用户一条记录)
代码如下: CREATE TABLE `site_stat` ( `id` int(11) unsigned NOT NULL auto_increment COMMENT '主键,自增', `sid` smallint(5) unsigned NOT NULL COMMENT '网站ID', `ip_address` varchar(32) NOT NULL COMMENT '用户IP', `add_time` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT '添加时间', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='站点流量统计表' ;
因为site_config表读操作大于写操作,所以类型设置为MyISAM;而site_stat表写操作大于读操作,因此,我把表类型设置为InnoDB。(这些地方也是你在设计数据的时候需要考虑的,速度提高不少)。 回到正题,假如表site_config里有这样几条数据: 数据格式为:id,sid,site_url,add_time 1,200,baidu.com, 14:20:00 2,201,google.com, 14:20:00 3,202,cnblogs.com, 14:20:00 4,203,codejia.net, 14:20:00 站点流量统计表site_stat里已经产生了一些数据,如下: 数据格式为:id,sid,ip_address,add_time 1,200,167.87.32.4, 14:40:00 2,200,192.168.11.56, 14:40:10 3,202,167.87.32.4, 14:40:10 4,202,192.168.11.56, 14:40:20 5,203,167.87.32.4, 14:40:20 6,202,10.10.10.10, 14:40:30 7,200,167.87.32.4, 14:40:31 你在后台需要做的报表格式为:日期,网站ID,网站URL,流量数 (没有流量的站点也要展示,流量显示为0) 你可能会想到根据日期,在表site_stat里根据sid group by之后再left join表site_config,这显然不是我将分享的方法。 用2条SQL来搞定,一条是取所有的站点;另一条是取指定日期下站点流量统计数。 SQL1取所有站点:
代码如下: SELECT sid,site_url,site_name FROM site_config
SQL2取站点统计(假如为今天):
代码如下: SELECT sid,COUNT(1) AS come_total FROM site_stat WHERE add_time&=' 00:00:00' AND add_time&=' 23:59:59' GROUP BY sid
前面说了一大堆都是为后面做铺垫,分享一个PHP以传过去的字段为索引,返回二维数组的方法:
代码如下: protected function getList($sql,$filed = null){ $res = mysql_query($sql,$this-&link_sc); $data = array(); if($filed === null){ while($row = mysql_fetch_assoc($res)){ $data[] = $ } }else{ while($row = mysql_fetch_assoc($res)){ $data[$row[$filed]] = $ } } return $ }
把你的SQL传进入,并把需要索引的字段传进入就OK,前提是传进去的字段必须要在select返回的字段里。 我们在取所有站点的时候不需要传过去字段,但在取站点流量统计的时候我们把,站点sid传过去,即如下:
代码如下: $sites = getList($sql1); //所有站点 $data = getList($sql2,'sid'); //站点流量数据,以sid为索引返回二维数组
最后在展示报表的时候,用foreach循环$sites,取流量的时候到数组$data里去取索引为sid的数据就OK了。 非常方便,并且非常容易掌握,我就经常这么干。 最后看下上表的统计结果报表: 格式为:日期,网站ID,网站URL,流量数 ,200,baidu.com,3 ,201,google.com,0 ,202,cnblogs.com,3 ,203,codejia.net,1 总结:貌似写这么多就说明那样一个小的技巧哈,但是,可千万别小看这个技巧,能节约你很多时间。所以,大家在写代码的时候多多总结,多多来博客园和大家交流、学习,编程水平一定会进步很快的!
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具新客网手机版在php中,如何从mySql数据库的某个表中取出某一个字段的值_百度知道
在php中,如何从mySql数据库的某个表中取出某一个字段的值
我有更好的答案
/*$result=mysql_query(&select title from announce&);$title=mysql_fetch_row($result);*/在参考一下list函数!如果我的回答没能帮助您,请继续追问。您也可以向我们团队发出请求,会有更专业的人来为您解答。
为您推荐:
其他类似问题
mysql数据库的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。php中如何把数据库中的一列数据利用一个变量循环输出?_百度知道
php中如何把数据库中的一列数据利用一个变量循环输出?
include(ROOT_PATH.&conn.php&);
$sql=&select goods_name from ecm_goods&;
$query=mysql_query($sql);
现在的结果是显示一列
下面如何把数据变成一个变量
在另外一个静态页面只利用此变量把一列的内容全部显示出来?
(mysql_fetc...
我有更好的答案
$result[$i];&
echo &select goods_name from ecm_goods&quot$sql=&quot,$i);hr /; $query=mysql_query($sql);if($query){
while($result=mysql_fetch_array($query)){
for($i=0;&.&;mysql_num_fields($query);$i++){
echo mysql_field_name($&lt.&$i&lt
你的这种方法我也有想过、假设我在前一个Php页面中写的这个
它能循环输出
那怎么去把这个循环的数组存到一个变量$str中
带到下一个静态页面(此页面不能使用php的循环)
而我又想在静态页面的时候仅输入$str
就能够把之前数组循环的所有成员都显示都来
该怎么办呢?
爱莫能助了,我把显示出来的值存到session中,然后在另一个页面中,获取它的值,但只能获取部分值,而不是完整的
参考资料:
采纳率:35%
$str = &#39.$row.&',&.= &';'&;foreach($array as $row){
$str 数组转字符串
为您推荐:
其他类似问题
您可能关注的内容
php的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 数据库表新增一列 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信