Php 回显所有阵列结果

Php 回显所有阵列结果,php,mysql,Php,Mysql,我在下面得到了这段代码,它只显示了数组的第一个结果。它怎么能把所有的都给我看 $res = mysql_query("SELECT clients FROM area ORDER BY date") or die("Error: " . mysql_error()); while($row = mysql_fetch_array($res)){ foreach($row as $value){ $result = explode(",", $value);

我在下面得到了这段代码,它只显示了数组的第一个结果。它怎么能把所有的都给我看

$res = mysql_query("SELECT clients FROM area ORDER BY date") or die("Error: " . mysql_error());
while($row = mysql_fetch_array($res)){ 
    foreach($row as $value){
        $result = explode(",", $value);

        foreach($result as $newvalue){
            $query="SELECT clients FROM names where names.id='$newvalue'";

            $res2 = mysql_query($query);
            $r = mysql_fetch_array($res2);
            $parent = $r['clients']; 
        }
    }


    // echo part

    echo "<td>" . $parent . "</td>";
}
另外,我想回显区域名称和日期,但当我选择*并回显名称和日期时,我什么也没有得到


谢谢

您的主要问题是您一直在重新写入$parent的值;这就是为什么您只能返回一行数据的原因$父级需要是一个数组,可以添加到找到的行中

此外,考虑使用PHP的PDO,它更安全,更面向对象:

$database = PDO(/*db_connection_data*/);

$stmt = $database->prepare( "SELECT `clients` FROM `area` ORDER BY `date`" );
$stmt->execute();

$res = $stmt->fetchAll( PDO::FETCH_ASSOC );

if( $stmt->rowCount() > 0 ) { # if results were found

     $parent = array();  # array needs to be initialized or else you keep overwriting it.

     foreach( $res as $value ) {

          $stmt = $database->prepare( "SELECT `clients` FROM `names` WHERE `names.id` = ?" );
          $stmt->bindValue( 1, $value );
          $stmt->execute();

          $res2 = $stmt->fetchAll( PDO::FETCH_ASSOC );

          # use $parent[] to add result as next element of the array 
          if( $res2->rowCount() > 0 ) { $parent[] = $res2[ 'clients' ]; }
          else { $parent[] = ""; }

     }

}

echo "<pre>" . print_r( $parent, 1 ) . "</pre>"; # print the $parent array in a more readable form.

请阅读这篇关于MySQL扩展的文章-可能是重复的感谢回复,但我仍然无法从ArrayTanks获得所有结果。现在我得到一个错误:对非对象调用成员函数rowCount