<?php
$name=Array ( [0] => 张三 [1] => 李四 [2] => 小三 [3] => 小四 [4] => 小五 );
$n=4;
$sql=mysql_query("select * from xmyz where `Name` like '%".$name[$n]."%'");
$info=mysql_fetch_array($sql);
do{
echo $info[ID];
echo $info[Name];
echo $info[TEL];
}while($info=mysql_fetch_array($sql));
?>
在$sql执行查询语句的时候,发现$name[$n]中,只有n=4的时候(试了多次,都是只能查出数组的最后一个值),能查出来数据。
而实际数据库中,$name数组的各个值都是存在的。
找不到原因,请各位大神指点,谢谢。

解决方案 »

  1.   

    你的$n写死值为4了。所以你要将$n初始为0。在循环时,给$n进行累加。
      

  2.   

    Array 要用半角逗号分割
      

  3.   

    大哥,你没搞对重点,我知道值写死了,我把n值从0测试到4,发现就等于4的时候才能查到数据。
    然后array格式是我发帖的时候随意写上去的,实际数组是没有问题的。
      

  4.   

    调试呗,看n==0的时候,var_dump($info);
      

  5.   

    数组改为$name =array("张三","李四","小三","小四","小五");  看看
      

  6.   

    那就简单了,拼接sql语句,直接在mysql中执行看结果。看是语法错误,还是就是没有数据。
      

  7.   

    那就简单了,拼接sql语句,直接在mysql中执行看结果。看是语法错误,还是就是没有数据。
    但是我在数据库里执行的时候,其他几个都是可以找到数据的。
    我现在也感觉是哪里语法的问题。但是找不到。。
      

  8.   

    query之前echo  exit;调试。查看sql语句。
      

  9.   

    宛如智障 你上面申明的数组格式错误   回去看看php数组基础
      

  10.   

    如果只是想转换成索引数组的话
    $name = array_values($name);
    这个函数能满足你的需求PS:
    你可以直接把0~3的sql语句select * from xmyz where `Name` like '%".$name[$n]."%'打印出来,看看有没有问题
    没问题的话放到mysql中查一下,看有没有数据。