我有一个从表contents2取得name这个值
$result=mysql_query("select a.name from contents2 a where a.level<'$level' and a.group='$group'");
$myrow=mysql_fetch_array($result);
从这个得出的name有好几个值,例如:张三1、张三2、张三3
我需要在contents3中根据name查值,请问sql语句怎么写?
$result2=mysql_query("select * from contents3 a where a.name=?")
就是如何把array的值如何放到 a.name=?这儿

解决方案 »

  1.   

    $myrow=mysql_fetch_array($result);
    =》
    while($myrow=mysql_fetch_array($result)){
         $arr[]=$myrow[0];
    }$s="'".join("','",$arr)."'";
    $result2=mysql_query("select * from contents3 a where a.name in($s)")
      

  2.   

    select * from contents3 a where a.name in (select a.name from contents2 a where a.level<'$level' and a.group='$group')
      

  3.   

    是每个name 都要取值吧 
    echo  $array['name']就是输出每个name
    用一个foreach()
    查询一下就可以了
      

  4.   

    循环取值   或者将数组变成字符串,然后用sql语句中的in关键字
      

  5.   

    $str_name = '';
    //循环存储name的数组,将数组中的值保存为一个以逗号分割的字符串$str_name。
    foreach($myrow as $value){
        if($str_name == ''){
            $str_name = $value;
        }else{
            $str_name .= ',' . $value;
        }
    }
    if($str_name != ''){
        $result2 = mysql_query('select * from contents3 a where a.name in(' . $str_name .')');
    }
      

  6.   

    for或者while循环就可以了或者直接把sql语句都写到一块去这样就没有取值的烦恼了
      

  7.   

    可以直接把sql语句查询的结果不用取出来直接把结果放在select in()括号里面,这样就没有取得数组值的烦恼了。