-3
<?php
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error()); 
$result = mysql_query("SELECT <column name> FROM <table name>"); 
$data=array();  // to create an array to store result
while ( $row= mysql_fetch_array( $result ))
   {
    $data = $row;
   }

?> 

このクエリは、次のような結果の複数の行を返します。

abc
def
ghk
...
...
...
...
...

私の質問は、出力値の各行が1つずつパーサーにフィードされるようにループ構造を変更するにはどうすればよいですか。

上記のコードスニペットを使用すると、パーサーにフィードされるのは1つだけです。ただし、各行を1つずつパーサーにフィードする必要があります。

私は解決策を見つけました。できます。

<?php 
 mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error()); 
 mysql_select_db("Database_Name") or die(mysql_error());  
$result = mysql_query("SELECT <column name> FROM <table name>");  
while ( $row= mysql_fetch_array( $result ))  
{  
echo $row['column name']; // to check does it works fine. 
// pass the variable " $row['column name'] " as paramter to parser function it works.  
//I have tried it. 
}  

?>  

配列に入力するのに間違った方法を使用していました。最良の方法は、ループ内の変数をパーサー関数に直接渡すことです。その場合、結果を格納するための外部配列は必要ありません。

4

2 に答える 2

2

あなたの質問に対する私の見解。あなたが何を求めているのか理解するのはちょっと難しいです。

出力値の各行が 1 つずつパーサーにフィードされるように、ループ構造を変更するにはどうすればよいですか

パーサーはどこにありますか?

<?php
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error()); 
$result = mysql_query("SELECT <column name> FROM <table name>"); 
$data=array();  // to create an array to store result
while ( $row= mysql_fetch_array( $result ))
{
    //here you did the mistake if you wanted to store it in a array (like you indicated in the above comment)
    $data[] = $row;


    // Pass anything to the parser here
}

// Or here you can pass it to the parser
// parser($data);

?>

パーサーにフィードされるのは 1 つだけです。しかし、各行を 1 つずつパーサーにフィードしたいと考えています。

わかりました、これは私が推測するこれを言う:

1 行だけがパーサーに渡されます (上で示したエラーのため)。すべての行を処理したい

解決策は次のとおりです。

<?php
mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());
mysql_select_db("Database_Name") or die(mysql_error()); 
$result = mysql_query("SELECT <column name> FROM <table name>"); 

$answer = array();  // to create an array to store result

while ( $row= mysql_fetch_array( $result ))
   {

    $answer[] = parser($row);
   }

?>
于 2012-07-22T08:20:20.050 に答える
0

PDO を使用し、fetchAll() を使用します

$pdo_options = array(
    PDO::ATTR_PERSISTENT => true,
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
    );
$dataBase = new PDO('mysql:host=ipAddress;dbname=yourDBname', 'user', 'password', $pdo_options);


$request = $dataBase->prepare('SELECT col1, 
col2 
FROM table1 
WHERE colx = :var1');

$request->execute(array('var1' => $_POST['var1']));
$results = $request->fetchAll();
$request->closeCursor();
于 2012-07-22T08:14:59.617 に答える