Php 从PDO关联数组中获取数据
我有一个搜索页面(search.php),它可以找到由某个作者创作的“笑话”Php 从PDO关联数组中获取数据,php,html,Php,Html,我有一个搜索页面(search.php),它可以找到由某个作者创作的“笑话” <?php spl_autoload_register(function ($class) { include_once($class.'.php'); }); $obj=new oopCrud; if(isset($_REQUEST['search'])){ extract($_REQUEST); $obj->search($authorid,"
<?php
spl_autoload_register(function ($class) {
include_once($class.'.php');
});
$obj=new oopCrud;
if(isset($_REQUEST['search'])){
extract($_REQUEST);
$obj->search($authorid,"joke");}
}
?>
<body>
<div class="wrapper">
<h1 class="main_heading">Search Jokes</h1>
<form action="searchform.html.php" method="post">
<p>View jokes satisfying the following criteria:</p>
<div>
<label for="author">By author:</label>
<select name="authorid" id="authorid">
<?php foreach($obj->showData("author") as $value){
extract($value);
echo @<<<show
<option value=$id>$name</option>
show;
}
?>
</select>
</div>
<input type="submit" name="search" value="search" class="btn">
</div>
</form>
</div><!-- end of wrapper -->
}
我想将此数据发送到searchresults.php页面以显示结果。如何发送或检索searchresults.php页面上的数据集,然后显示它?我不想直接使用jQuery/AJAX等php/html
我使用PDO创建查询,并使用面向对象的编程方法。在页面刷新(提交)时获取数据: $results=$obj->search($authord,“笑话”) 加载数据 在你的html代码中
<select name="authorid" id="authorid">
<?php
if($results){
foreach($results as $result){
foreach($result as $key=>$val) {
?>
echo "<option value={$val['id']}>{$val['name']}</option>"
<?php
}
}
}
?>
回显“{$val['name']}”
我不太确定您想用result和->showData函数做什么。如果这有帮助,试试看
===
多维数组到表。。。如果您不习惯每次关闭php标记,也可以使用echo”“
<?php
$results = array(
array('jokeid' => 13, 'joketext' =>'Why did the chicken cross the road? To avoid getting roasted.', 'jokedate' => '2017-04-15', 'authorid' => 1 ),
array('jokeid' => 16, 'joketext' => 'This is test joke2', 'jokedate' => '2017-04-16', 'authorid' => 1 )
);
if($results)
{
?><table><?php
foreach($results as $result)
{
?><tr><?php
foreach($result as $key=>$val)
{
?><td> <?php echo $val; ?> </td> <?php
}
?></tr><?php
}
?> </table> <?php
}
exit;
?>
您可以创建一个oopCRUD实例,然后在search.php页面上搜索时使用它,只需将搜索词传递给该实例(您已经在这样做了)。。。然后,您只需要在一个变量中获取hat return搜索数据,并在search.php中使用它->有意义吗?您可以说“在一个变量中获取该返回搜索数据,并在search.php中使用它”。你的意思是在searchresults.php中使用它吗?你会怎么做?你能举个例子吗?谢谢你的建议,但这不起作用。如果我将函数改为使用fetchAll而不是fetch,那么我会得到一个部分解决方案,它是一个关联数组,使用print\r时看起来像这样:谢谢你的建议,但这不起作用。如果我将函数改为使用fetchAll而不是fetch,那么我会得到一个部分解决方案,即使用print\u r:array([0]=>array([jokeid]=>13[joketext]=>13[joketext]=>为什么鸡会过马路?为了避免烤鸡。[jokedate]=>2017-04-15[authorid]=>1][1]=>array([jokeid]=>16[joketext]=>这是test joke2[jokedate]=>2017-04-16[authorid]=>1])您将如何以表格格式显示此多维数组?非常感谢-在您的帮助下,此功能现在运行良好。最后一个问题——在我最初的问题中,我想将结果集显示在搜索页面的另一个页面上。因此,数据流从-使用search.php获取搜索条件-将其发送到类oopCRUD.php中的搜索函数,然后将其发送到searchresults.php进行显示。目前的工作方式是,结果数据显示在search.php上,即原始搜索页面。你知道一种将数据获取到searchresult.php的方法吗。。。我不知道为什么您希望search.php和searchresults.php有所不同。但是有两种方法-1。只保留一个search.php或searchresults.php。在searchresults.php中添加搜索逻辑,并在那里传递搜索词。。。所以,您的流程将是用户搜索某物->获取搜索词并在get param中传递searchresults.php,然后在加载页面之前使用oopCRUD获取上述结果。2.在searchresults.php中包含search.php,只需检查结果是否为空,然后加载它们。我正在尝试执行您给出的第二个选项,但每次我在search.php中包含searchresults.php时,它只是将searchresults.php添加到search.php页面。所以我在我的search.php页面上有这样一个问题:如何让searchresults1.php自己打开而不添加到search.php??
<?php
$results = array(
array('jokeid' => 13, 'joketext' =>'Why did the chicken cross the road? To avoid getting roasted.', 'jokedate' => '2017-04-15', 'authorid' => 1 ),
array('jokeid' => 16, 'joketext' => 'This is test joke2', 'jokedate' => '2017-04-16', 'authorid' => 1 )
);
if($results)
{
?><table><?php
foreach($results as $result)
{
?><tr><?php
foreach($result as $key=>$val)
{
?><td> <?php echo $val; ?> </td> <?php
}
?></tr><?php
}
?> </table> <?php
}
exit;
?>