有没有办法通过POST将查询结果(作为数组)发送到另一个页面?
<?
$qry_string = "Select * from table where user_id=1";
$result = mysql_query($qry_string);
?>
现在,通常我会检查查询返回的每一行中的数据:
while($row = mysql_fetch_assoc($result))
{
echo $row['some_column'];
}
但是,我想从另一个页面运行上面的行,因此需要将返回的查询结果发送到该页面。我该怎么做呢?我尝试使用以下命令序列化和反序列化数组:
<input type="hidden" value="<? print_r(serialize($project_data)) ?>" name="project_data" />
但是,当我去反序列化数组时:
$project_arr = unserialize(stripslashes($_POST['project_data']));
print_r($project_arr); // RETURNS NULL
// Error thrown here
foreach ($project_arr as $row) {
$project_name = $row['project_name'];
$project_type = $row['project_type'];
}
我收到以下错误:
Warning: Invalid argument supplied for foreach()
将查询结果发送到另一个PHP页面并读取行中的数据的正确方法是什么?
答案 0 :(得分:0)
如果你将PHP分成单独的文件(或者url,如果你正在使用mvc等),你可以从字面上的任何地方用ajax明确地调用该url,它会将数据返回给你。
否则你可以根据需要在$ _SESSION ['someKeyName']中设置该数组。从那时起,它将随处可用。
答案 1 :(得分:0)
您无法直接序列化对象,因为尚未获取查询中的所有数据。但是,您可以将所有数据提取到数组中,然后序列化:
$data = array();
while($row = mysql_fetch_assoc()) {
$data[] = $row;
}
echo serialize($data);