phpmysqlfetch
㈠ php mysql_fetch_assoc 循环遍历表格
有2个办法,第一种直接使用sql的多表联查,效率高,但是得到的数据table1会被扩展成table2一样的条目数 要再次处理
select*fromtable1a,table2bwherea.orderid=b.orderid
第二种方法,先得到table11的数据,在循环中匹配table2到一个新的列名中
$conn=mysqli_connect("127.0.0.1","root","123","test");
$sql="select*fromtable1";
$rs=mysqli_query($conn,$sql);
$Arr=array();
while($row=mysqli_fetch_assoc($rs)){
$sql="select*fromtable2whereorderid=".$row["orderid"];
$row["order_sku"]=mysqli_fetch_all(mysqli_query($conn,$sql),MYSQLI_ASSOC);
$Arr[]=$row;
}
print_r($Arr)
如果你是刚开始学php 建议直接抛弃mysql用mysqli 因为PHP5.5已经废弃mysql方法了
㈡ php mysql_fetch_array 多次用于一个数据集
$query=$db->returndb($sql);
while($news=mysql_fetch_array($query)){
$Data[]=$news;
}
//这样,数据库的数据就全部在$Data这个二维数组中了,那你要循环多少次都行,这个数组永远存在,比如:
froeach($Dataas$rs){
echo$rs['字段名称'];
}
froeach($Dataas$rb){
echo$rb['字段名称'];
}
.....................
㈢ php里mysql_fetch_array的用法,面向对象。
functionfn_select($tab,$term){
return$this->query("SELECT*FROM$tab$term");
}
functionquery($sql){
returnmysql_query($sql);
}
functionfetch_array($sql){
$result=$this->query($sql);
returnmysql_fetch_array($result);
}
应该是这样的,有问题的话,欢迎继续追问
㈣ 为什么php总是说我mysql_fetch_array出错
PHP 的警告提示信息里说明了问题的原因:
mysql_fetch_array 函数的第一个参数,这个参数应该是个资源句柄,但在实际代码运行中,传递给这个参数的,是个 boolean 值。
出现这种情况的原因,通常是在 sql 执行后,没有得到正确的结果,比如,上面的代码中:
$sqlresult=mysql_query($sql);
应该没有得以按预期的结果。
㈤ 关于PHP的函数mysql_fetch_assoc的问题
就是取出一条记录之后 再把指针往下一位 指向下一条记录
一般实际使用中 都是用循环来取出全部记录
<?php
//mysql_desc
header('Content-type:text/html;charset=utf-8');
//连接数据库
@mysql_connect('localhost','root','root')ordie('数据库连接失败');
@mysql_query('usemyshop')ordie('数据库选择失败');
$sql="descmy_admin";
$ass=mysql_query($sql);
$list=array();
while($row=mysql_fetch_assoc($ass)){
$list[]=$row['Field'];
}
echo'<pre>';
var_mp($list);
?>
resource在php中是一种数据类型 就是代表从数据库取出的资源
以后的话 在PHP中都是用PDO进行数据库操作了
<?php
//PDO:数据查询
header('Content-type:text/html;charset=utf8');
//连接认证
$pdo=newPDO('mysql:dbname=czbk;charset=utf8','root','1234');
//查询操作
$sql="select*fromcz_goods";
//执行:有结果返回
$stmt=$pdo->query($sql);
//循环取出所有结果
$lists=array();
while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
$lists[]=$row;
}
var_mp($lists);
?>
㈥ php函数mysql_fetch_row、assoc、array、object的区别
一、mysql_fetch_row
这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从
0
开始。
注意,这里是从0开始偏移,也就是说不能用字段名字来取值,只能用索引来取值。例如:
while($row
=
mysql_fetch_row($res)){
echo
$row['cid'].'>>>'.$row[1].'
';
}
这里的$row['cid']取不到值,$row[1]可以取到。
二、mysql_fetch_assoc
从结果集中取得一行作为关联数组,也就是说这个函数不能像mysql_fetch_row那样用索引来取值,只能用字段名字来取。例如:
while($row
=
mysql_fetch_assoc($res)){
echo
$row['cid'].'>>>'.$row[1].'
';
}
这里$row[1]这样是取不到值的,$row['cid']可以取到。
三、mysql_fetch_array
从结果集中取得一行作为关联数组,或数字数组,或二者兼有,除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
也就是说他得到的结果像数组一样,可以用key或者索引来取值。例如:
while($row
=
mysql_fetch_array($res)){
echo
$row['cid'].'>>>'.$row[1].'
';
}
这里$row['cid'],$row[1]都能得到相应的值。
mysql_fetch_row和mysql_fetch_assoc的功能加起来就是mysql_fetch_array。
四、mysql_fetch_object
顾名思义,从结果集中取得一行作为对象,并将字段名字做为属性。所以只有这样才能取到值:
while($row
=
mysql_fetch_object($res)){
echo
$row->cid.'>>>'.$row->title."
";
}
㈦ php的mysql_fetch_array函数到底怎么用啊
$result = mysql_query("ELECT username,yhzfmm FROM xly_yhzl WHERE username = 'zwj0936' AND yhzfmm = '870802'");
这句中的SQL语句应当是SELECT,不是ELECT
既然用if(!$GLOBALS) echo "连接数据库失败!";判断连接是否失败,就要抑制$GLOBALS["conn"] = mysql_connect($dbhost,$dbuser,$dbpass); 的出错,添加@(这个不算错)
改为$GLOBALS["conn"] = @ mysql_connect($dbhost,$dbuser,$dbpass);
别的地方没看出什么错,那个yhzfmm = '870802',如果表设计时是按字符串存储就没错,如果是按数字存储的话要去掉单引号'
㈧ PHP中mysql_fetch_array函数的问题
给你找了些资料: 介绍的挺详细的:
mysql_fetch_array函数 -- 从结果集中取得一行作为关联数组(是以你所搜索的字段作为的键名),或数字数组(也就是你所说的0,1,2,3...),或二者兼有
相关说明
array mysql_fetch_array ( resource result [, int result_type])
返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。
如果结果中的两个或以上的列具有相同字段名,最后一列将优先。要访问同名的其它列,必须用该列的数字索引或给该列起个别名。对有别名的列,不能再用原来的列名访问其内容(本例中的 'field')。
还是看几个例子:
例子 1. 相同字段名的查询
select table1.field as foo, table2.field as bar from table1, table2
有一点很重要必须指出,用 mysql_fetch_array() 并不明显 比用 mysql_fetch_row() 慢,而且还提供了明显更多的值。
mysql_fetch_array() 中可选的第二个参数 result_type 是一个常量,可以接受以下值:MYSQL_ASSOC,MYSQL_NUM 和 MYSQL_BOTH。本特性是 PHP 3.0.7 起新加的。本参数的默认值是 MYSQL_BOTH。
如果用了 MYSQL_BOTH,将得到一个同时包含关联和数字索引的数组。用 MYSQL_ASSOC 只得到关联索引(如同 mysql_fetch_assoc() 那样),用 MYSQL_NUM 只得到数字索引(如同 mysql_fetch_row() 那样)。
注: 该函数返回的字段名是大小写敏感的。
例子 2. mysql_fetch_array 使用 MYSQL_NUM
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Name: %s", $row[0], $row[1]);
}
mysql_free_result($result);
?>
例子 3. mysql_fetch_array 使用 MYSQL_ASSOC
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", $row["id"], $row["name"]);
}
mysql_free_result($result);
?>
例子 4. mysql_fetch_array 使用 MYSQL_BOTH
<?php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}
mysql_free_result($result);
此例中的"while ($row = mysql_fetch_array($result, MYSQL_BOTH))"
也可以将括号中的第二个参数去掉,既等价于:
"while ($row = mysql_fetch_array($result))"
?>
---------------------------------------------------------------------
仔细看看这些 相信对你有所帮助
㈨ php里mysql_fetch_row()
正常是这样的
$sql = "select * from user";
$query = mysql_query($sql);
while(@$row = mysql_fetch_row){
echo $row[0];
}
这里的$row意思就是 根据那条sql语句查询出来的结果集 是一个数组。
如果你用的是 mysql_fetch_row 那么可以使用$row[0] $row[1]这样来打印你所查询的表的列 0表示第一个字段 1为第2个字段 以此类推
如果你使用mysql_fetch_array 那么打印的时候你可以使用 $row[id] $row[name] 直接使用字段名称 这样更加一目了然。
总的来说 这里的row就是结果集的意思 是一个数组。
$row = mysql_fetch_row 为空的时候(也就是没有查询到结果) 会报错。
最好在$row前面加一个@来屏蔽这个错误。
㈩ PHP mysql_fetch_array函数,怎样取得所有行
mysql系的函数中都是逐行读取的,即第一次mysql_fetch_array得到第一行,第二次得到第二行...你可以自己定义一个函数来读取所有行,例如
function mysql_fetch_all($result) {
$rows = array();
while($row=mysql_fetch_array($result))
$rows[] = $row;
return $rows;
}
更好的办法建议你用pdo方式访问mysql,这个也是php目前推荐的方式(php5开始pdo库默认在php.ini中已经启用,而mysql系列默认是不启用的)。pdo提供了fetch_all方法取得所有行及fetch方法取得一行。
更多信息请查看php手册中的说明。