-3

だから私はExcelファイルを持っています。返されるクエリが複数あります。ただし、これらすべてのクエリを一度に実行し、結果を Excel ファイルに出力する必要があります。

$col = 1;
while($row_data = mysql_fetch_assoc($result)) {
$row = 1;
if ($col == 1) {
    $row_headings = array_keys($row_data);
       foreach($row_headings as $value) {
    $h = preg_split('/X/', $value);

if ($h[0] = $id and $h[2] != null){
$results="select question from lime_questions where sid =".$h[0]." and gid =".$h[1]." and qid =".$h[2]."; ";
echo $results;
//This is where the queries are returned. 
//They are echoed to the first cell of the excel file
//They are returned as "query1;query2;..."
//This is where I am messing up. 
//I am attempting to run the queries. I have been attempting many different approaches

$query_result = mysql_query($results[0]); //this does not return results of the queries
echo $query_result;
//attempting to show the results in the first cell of the excel file
     }
//ideally at this point this foreach would print each query result in its own cell
 foreach(mysql_query($results) as $value2){
        $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow($col, $row, $value2);
        $row++;
     }
    $row = 1;
    $col++;
}
4

1 に答える 1

2

PHP 5 で mysqli_multi_query を試すことができます。

http://us2.php.net/manual/en/mysqli.multi-query.php

それ以外では、ネストされたクエリは機能するはずです。間違ったキー/値要素をターゲットにしている可能性があります。使用されているスキーマにアクセスせずに言うのは難しいです。

しかし、私は同意します。古い関数は非推奨になるため、新しいスクリプト メソッドで更新する必要があります。

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-----------------\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>
于 2012-11-08T19:59:04.460 に答える