十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
?php
10年积累的成都网站制作、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有砚山免费网站建设让你可以放心的选择与我们合作。
$con = mysql_connect("localhost","root","");//连接数据库
mysql_select_db('test');//选择数据库
?
html
head
titledropdown from mysql/title
/head
body
h1dropdown from mysql/h1
form action="#" method="post"
select
option value=0--请选择--/option
?php
$sql= "select val from custom where field='hook_load'";//sql语句
$result = mysql_query($sql, $con);//执行sql语句
while($row = mysql_fetch_array($result))
{
echo "option value='$row[val]'$row[val]/option";//循环,拼凑下拉框选项
}
?
/select
/form
/body
/html
既然是遍历,那就将数据库指针先移到第一条记录,逐次取出数据进行运算,下移指针,直到库结束。
通常的代码如下:
mysql_data_seek($result,0);//指针复位
while($row=mysql_fetch_array($result)) {
//对每行记录进行运算 处理,如 :echo $row['name']."br /";
}
?php
$host="localhost";
$username="root";
$password="root";
$db="db4"; //库名
$mysql_table="person"; //表名
//连接数据库,面向过程
$conn=mysqli_connect($host,$username,$password);
if(!$conn){
echo "数据库连接失败";
exit;
}
//选择所要操作的数据库
mysqli_select_db($conn,$db);
//设置数据库编码格式
mysqli_query($conn,"SET NAMES UTF8");
//编写sql获取分页数据 SELECT * FROM 表名 LIMIT 起始位置,显示条数
//注意:以下id,name,age,say都是字段节点名,person是表名,db4是数据库名,think是指定的关键字.
$sql = 'SELECT id, name, age, say
FROM person
WHERE say LIKE "%think%" order by id ASC LIMIT '.($page-1)*$pageSize .",{$pageSize}";
// 节点名 关键字 节点名 可指定数量limit后可写一个指定的数字
//$sql="select * from $mysql_table"
//把sql语句传送到数据库
$result=mysqli_query($conn,$sql);
//将数据显示到table中,并未table设置格式
echo "div class='content'";
echo "table border=1 cellspacing=0 width=30% align=center";
echo "trtdID/tdtdNAME/tdtdsay/td/tr";
while ($row = mysqli_fetch_assoc($result)) {
echo "tr";
echo "td{$row['id']}/td";
echo "td{$row['name']}/td";
echo "td{$row['say']}/td";
echo "tr";
}
echo "/table";
echo "/div";
//释放结果
mysqli_free_result($result);
//关闭数据库
mysqli_close($conn);
你在while循环里面不断对$file_one赋值,但是循环结束之后才连续输出它的值多次,当然你输出的实际上是最后一条记录的重复。
可以在循环里面把数据库的值赋予数组,例如:
$file_ones[]=$row["file_url"];
而循环完毕后使用数组的元素,例如:
{img:'$file_site$file_ones[0]',
第一、foreach()
foreach()是一个用来遍历数组中数据的最简单有效的方法。
?php
$urls= array('aaa','bbb','ccc','ddd');
foreach ($urls as $url){
echo "This Site url is $url! br /";
}
?
显示结果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第二、while() 和 list(),each()配合使用。
?php
$urls= array('aaa','bbb','ccc','ddd');
while(list($key,$val)= each($urls)) {
echo "This Site url is $val.br /";
}
?
显示结果:
?
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第三、for()运用for遍历数组
?php
$urls= array('aaa','bbb','ccc','ddd');
for ($i= 0;$i count($urls); $i++){
$str= $urls[$i];
echo "This Site url is $str.br /";
}
?
显示结果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
这几种遍历数组的方法哪个更快捷些呢,下面做个简单的测试就明白了
=========== 下面来测试三种遍历数组的速度 ===========
一般情况下,遍历一个数组有三种方法,for、while、foreach。其中最简单方便的是foreach。下面先让我们来测试一下共同遍历一个有50000个下标的一维数组所耗的时间。
?php
$arr= array();
for($i= 0; $i 50000; $i++){
$arr[]= $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start= GetRunTime();
for($i= 0; $i count($arr); $i++){
$str= $arr[$i];
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)br /br /';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
while(list($key, $val)= each($arr)){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)br /br /';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
foreach($arr as$key= $val){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)br /br /';
?
测试结果:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
结果表明,对于遍历同样一个数组,foreach速度最快,最慢的则是while。从原理上来看,foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。原因应该是,foreach是PHP内部实现,而while是通用的循环结构。所以,在通常应用中foreach简单,而且效率高。在PHP5下,foreach还可以遍历类的属性。
希望能够喜欢。
两种方法
第一种是修改查询语句,在查询语句中去除重复项
select distinct 列名 from 表明 只适用于查询单列数据,网上的查询多列的方法试过一些,都报错
第二种方法是把查到的数据先读进一个数组,然后使用array_unique()函数去除重复项,再使用foreach遍历数组来拼凑下拉框选项
$arr=[];
while($row = mysql_fetch_array($result)) {
array_push($arr,$row[Keyword]);//读进数组
}
$arr=array_unique($arr);//去除重复项
foreach ($arr as $key = $val) {
echo "option value='$val'$val/option";//循环,拼凑下拉框选项
}
希望能帮到你