其实很简单,你要抓住一点:mysql_fetch_row,mysql_fetch_array这样的函数,会在执行一次之后,把指针往后推移一次。你下面成功的代码中,mysql_fetch_row用的同一个资源句柄作为参数,while里面执行了一次,推移一次指针,if里面再执行的时候,就会是后面一条记录了。但是,你失败的代码里,$Query,$SQuery并不是同一个资源句柄,第一次执行推移$Query,而不是$SQuery.懂了么?
为相山等地区用户提供了全套网页设计制作服务,及相山网站建设行业解决方案。主营业务为网站制作、成都网站设计、相山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
你这样的数组结构肯定是不行的,每次都只会遍历一个元素,除非你是个二维数组,二维数组里面是两个元素,这样才可以,比如说
$arr = [[1,2],[3,4]];
foreach ($arr as $key = $value) {
echo $arr[$key][0];
echo $arr[$key][1];
}
结果已经有了,我就说下这句话的区别
mysql_select_db,字面上就能理解,选择数据库
去PHP手册中可以发现该函数的返回值是bool,也就是布尔值
bool mysql_select_db ( string $database_name [, resource $ link_identifier ] )
只是确定操作是否成功
$result = mysql_query($sql, $link); // 执行查询语句
是执行查询语句,这时返回的是
resource mysql_query ( string $query [, resource $link_identifier ] )
资源符号,通过var_dump($result)可以看到该变量的类型,不是数组
随后通过mysql_fetch_array($result);获取实际查询语句所能获取的数据
每次操作,返回一行数据
该操作会变相的移动该资源的指针,PHP的概念里面没有指针,但需要知道该函数可以多次执行
概念和foreach一致
所以通过
while ($bookInfo = mysql_fetch_array($result)){
}
可以获取所有的行数据
如果没有数据会返回false,所以while会自动停止循环
//查看数组这里有2个函数
print_r 和 var_dump
其中var_dump会输出数组值的数据类型。
你试一试使用
var_dump($rq);
或者
print_r($rq);
如果格式不是很好看,在上面的语句前面加上
echo "pre";
这样数组就能按格式输出,方便查看。
var_dump — 打印变量的相关信息
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
例如:
?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?
输出:
array(3) {
[0]= int(1)
[1]= int(2)
[2]= array(3) {
[0]= string(1) "a"
[1]= string(1) "b"
[2]= string(1) "c"
}
}
$conn= mysqli_connect($DbIP,$DbUserName,$DbPwd,$DbName);//数据库地址,用户名,密码,数据库名
$name = '123';
$sql = "SELECT name FROM order WHERE name ='".$name."'";
$res = mysqli_query($conn,$sql);//也可以直接用 $res = mysqli_query($sql);
$arr = array();
if($res is_object($res)){
while($row=mysql_fetch_assoc($res)){
$arr[] = $row;
}
}
print_r($arr);