所以任务是:
到目前为止我有什么:
$ Conn = odbc_connect(" ......");
$ Result = odbc_exec("选择......");
while($ r = odbc_fetch_array($ Result))
//在表格中显示结果
这里看起来我应该使用r
数组并插入像
$var = r['some_field'];
$query = 'Select * from table where some_field = {$var}";
但是如何用数值填充此数组以及如何使其在while循环中可用? 我在这里使用odbc,但这并不重要,我需要算法。感谢。
整个代码如下:
<?php
$data = array();
$state = 'false';
if($_REQUEST['user_action']=='')
{
$Conn = odbc_connect("...");
$data = array();
if($_REQUEST['name']!='')
{
$Result = odbc_exec($Conn, "select ...");
//Showing result table
while($r = odbc_fetch_array(Result))
{
array_push($data, $r['cardgroup']);
$state = 'true';
}
// print_r($data); WORKS;
}
}
if ($_REQUEST['user_action'] == 'action1')
{
//I need to use $data HERE. Doesn't work
// $state = 'false' here...
}
?>
答案 0 :(得分:2)
在循环中定义数组
$data = array();//defining
while($r = odbc_fetch_array($Result))
在循环中使用array_push()
array_push($data, $r['some_field']);
然后尝试在循环外打印完整数据数组
print_r($data);
将$data = array();
放在第一个IF
语句的顶部。试试这段代码:
$data = array();//at top
if($_REQUEST['user_action']=='')
{
$Conn = odbc_connect("...");
if($_REQUEST['name']!='')
{
$Result = odbc_exec($Conn, "select ...");
//Showing result table
while($r = odbc_fetch_array(Result))
{
array_push($data, $r['cardgroup']);
}
// print_r($data); WORKS;
}
}
if ($_REQUEST['user_action'] == 'action1')
{
//print_r($data) works here also
}
答案 1 :(得分:2)
尝试这样的方法将数据存储在数组
中$allrows = array();
while($r = odbc_fetch_array( $result )){
$allrows[] = $r;
}
使用foreach循环打印或根据您的选择使用
foreach($allrows as $singlerow) {
//use it as you want, for insert/update or print all key value like this
foreach($singlerow as $key => $value) {
//echo $key . '=='. $value;
}
}
答案 2 :(得分:1)
你可以尝试这个,因为我理解你的查询希望这是你的答案
$arr ='';
while($row = odbc_fetch_array($Result)) {
$arr .= '\''.$row['some_field'].'\',';
}
$arr = trim($arr, ",");
$query = "SELECT * from table where some_field IN ($arr)";
答案 3 :(得分:0)
您的所有任务都可以在单个查询中完成
INSERT INTO table2 (col1, col2, ..., coln)
SELECT col1, col2, ..., coln
FROM table1