-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
...
...
...
...
...

我的问题是如何更改循环结构,以便将输出值的每一行一一馈送到解析器。

使用上面的代码片段,只有一个被提供给解析器。但我希望每一行都被一一提供给解析器。

我找到了解决方案。有用。

<?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

我对你的问题的看法。有点难以理解你在问什么。

如何更改循环结构,以便将输出值的每一行一一馈送到解析器。

解析器在哪里?

<?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);

?>

只有一个提供给解析器。但是我希望每一行都被一一提供给解析器。

好的,我假设这个是这样说的:

只有一行输入到解析器(由于我在上面显示的错误)。您要处理所有行

这是解决方案:

<?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 回答