我代码if ($conn) {
$recode = "select * from test";
$result = mysql_query ( $recode, $conn );
while ( $row = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) {
$array [$row ['tag']] = $row ["pinyin"];
}
}
,本来是从test表中读取tag和pinyin字段。
现在需要改成从test表读取tag,pinyin,jianpin字段。
$array [$row ['tag']] = $row ["pinyin"];
需要怎么修改?

解决方案 »

  1.   

    $array[$row['tag']] = array(
             'pinyin' => $row["pinyin"],
             'jianpin' => $row["jianpin"]
             );
      

  2.   

    我感觉思路挺清晰的啊,请test中取tag但包含pinyin。
      

  3.   

    不知道你要存成啥样的,二维数组?还有key值有啥要求(你原来的是tag那么其他的用啥当key?)
      

  4.   

    我觉得2楼的可以啊,楼主是不是访问方法写错了,比如访问pinyin的时候应该用$array[$valueOfTag]['pinyin']?
      

  5.   

    谢谢关注 附上源代码 帮忙看看<?php
     header("content-type:text/html; charset=utf-8");
    $q = strtolower($_GET["q"]);
    if (!$q) return;
    $conn = @mysql_connect ( "localhost", "root", "" ); //连接数据库 
    mysql_query("SET NAMES 'utf8'");//处理乱码     
    mysql_select_db ( "test", $conn ); //选择数据库      
    $array ;
    if ($conn) {
    $recode = "select * from test";
    $result = mysql_query ( $recode, $conn );
    while ( $row = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) {
    $array [$row ['tag']] = $row ["pinyin"];
    }
    }
    foreach ($array as $key=>$value) {
    if (strpos(strtolower("$key|$value"), $q) !== false) {
    echo "$key|$value\n";
    }}
    ?>
      

  6.   

    用唠叨老大的方法(2楼的),并且西下面调用时候
    echo "$key|$value['pinyin']|$value['jianpin']\n";
      

  7.   

    到了这一步,那我就整理下楼上那位大大的做法给你<?php 
    header("content-type:text/html; charset=utf-8"); 
    $q = strtolower($_GET["q"]); 
    if (!$q) return; 
    $conn = @mysql_connect ( "localhost", "root", "" ); //连接数据库 
    mysql_query("SET NAMES 'utf8'");//处理乱码 
    mysql_select_db ( "test", $conn ); //选择数据库 
    //$array ;//这行干嘛的? 声明不是这样的
    $array = array(); 
    if ($conn) { 
       $recode = "select * from test"; 
       $result = mysql_query ( $recode, $conn ); 
       while ( $row = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) { 
          $array [$row ['tag']] = $row; 
       } 

    foreach ($array as $key=>$value) { 
       $pinyin = $value['pinyin'];
       $jianpin = $value['jianpin'];
       echo $key , '|', $pinyin, '|', $jianpin;
       //这里你爱怎么操作怎么操作

    ?>
      

  8.   

    测试结果:
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\APMServ\www\htdocs\f\demo\a\search.php on line 13
      

  9.   

    ......你把sql语句输出下  用phpmyadmin  看一下能够查询到结果吗
      

  10.   

    mysql可以得到结果 如tag:孙燕姿 pinyin:sunyanzi jianpin:syz
    用最初的代码可以输入sun可以得到tag:孙燕姿.我希望的是输入syz后也能得到tag:孙燕姿 2楼的方法输入任何字符都是空白,查不到结果。11楼的方法提示错误。
      

  11.   


    那这个就是你的sql语句有问题了呀~~
      

  12.   

    我是在做一个搜索框架 引用的是jquery.autocomplete插件,本demo测试中只有一个test表 tag pinyin jianpin三字段
    、这个php文档和插件官方提供的html与js文件。也就这个php文档和mysql挂钩,用到的也不过是模糊查询而已。
      

  13.   

    它的错误信息应该有提示你具体什么错吧,你完整的信息贴出来,出现
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource 这个错误,无一例外都是sql语句出现错误。
    麻雀虽小,五脏俱全,就算你只用了模糊搜索,你能保证它完全正确么!
      

  14.   

    用了一个绝对笨蛋的两次遍历方法给完美解决了。懒得管代码了。
    谢谢以上朋友的热心答复。
    <?php
     header("content-type:text/html; charset=utf-8");
    $q = strtolower($_GET["q"]);
    if (!$q) return;
    $conn = @mysql_connect ( "localhost", "root", "" ); //连接数据库 
    mysql_query("SET NAMES 'utf8'");//处理乱码     
    //mysql_query ( "SET character_set_connection=gbk , character_set_results=gbk, character_set_client=gbk, sql_mode='' " );
    mysql_select_db ( "dmc130260_db", $conn ); //选择数据库      if ($conn) {
    $recode = "select * from test";
    $result = mysql_query ( $recode, $conn );
    while ( $row = mysql_fetch_array ( $result, MYSQL_ASSOC ) ) {
    $array [$row ['tag']] = $row ["pinyin"];
    $array_push [$row ['tag']] = $row ["jianpin"];
    }
    }
    foreach ($array as $key=>$value) {
    if (strpos(strtolower("$key|$value"), $q) !== false) {
    echo "$key|$value\n";
    }}
    foreach ($array_push as $key=>$value) {
    if (strpos(strtolower("$key|$value"), $q) !== false) {
    echo "$key|$value\n";
    }}?>