我是PHP和数据库查询的新手。
我有一个安装了Genesis框架的WordPress网站,我正在创建一个子主题,并添加一些模板页面来插入数据库中的数据。我正在创建一个类别页面和一个产品页面。
我对类别页面上的某些查询数据有疑问,如果有人可以指出我正确的方向,我将非常感激。
我将所有数据库行以表格格式单独输出,这正是我想要的,但我无法在显示的产品上方输出标题,我尝试了很多解决方案但迄今为止没有人完成这项工作。这是我的代码:
function child_product_data_loop() {
global $wpdb;
$category = $wpdb->get_results("SELECT * FROM product_data WHERE prod_cat_1='Retractable Plastic Pens';");
echo "<main class='content'>
<article class='page type-page status-publish entry' itemscope='' itemtype='http://schema.org/CreativeWork'>
<header class='entry-header'>
<h1 class='entry-title' itemprop='headline'>".$category->prod_cat_1."</h1>
</header>
<div class='entry-content' itemprop='text'>
<p>For more information on any product within our ".$category->prod_cat_1." range please click on "details and prices".</p>";
foreach($category as $product){
echo "<table width='100%' border='0' cellpadding='2' cellspacing='0'>
<tbody>
<tr valign='top'>
<td><h3><a href='' style='color: rgb(51, 102, 153); text-decoration: none;'>".$product->prod_name."</a></h3></td>
<td style='color: #ff0000; text-align: right;'>From: £".$product->prod_price_5."</td>
</tr>
<tr valign='top'>
<td colspan='2'><a href='' style='color: #CC6600; text-decoration: none;'>Click here for details and prices</a></td>
</tr>
<tr align='center' valign='middle'>
<td height='75' colspan='2'><a href='' title='".$product->prod_name."'><img width='100%' height='auto' src='http://thepensite.co.uk/wp-content/uploads/media-clic.jpg' class='prod-image' alt='".$product->prod_name."' srcset='http://thepensite.co.uk/wp-content/uploads/media-clic-300x33.jpg 300w, http://thepensite.co.uk/wp-content/uploads/media-clic.jpg 420w' sizes='(max-width: 420px) 100vw, 420px' /></a></td>
</tr>
</tbody>
</table>";
}
echo "</div>
</article>
</main>";
}
我的问题在这些代码行中:
echo "<main class='content'>
<article class='page type-page status-publish entry' itemscope='' itemtype='http://schema.org/CreativeWork'>
<header class='entry-header'>
<h1 class='entry-title' itemprop='headline'>".$category->prod_cat_1."</h1>
</header>
<div class='entry-content' itemprop='text'>
<p>For more information on any product within our ".$category->prod_cat_1." range please click on "details and prices".</p>";
由于某种原因,类别名称没有输出,正如我之前所说的,我已经尝试了很多我已经找到的解决方案,但他们还没有工作,所以我显然做了一些事情完全错了。
你们中的任何人都可以帮忙吗?
非常感谢提前。
答案 0 :(得分:2)
使用$category[0]->prod_cat_1
您无法正确访问数组值。 [0]是关键
修改强>
在查询后执行print("<pre>".print_r($category,true)."</pre>");
,看看你是如何得到结果的。
答案 1 :(得分:0)
很可能,您没有正确访问从查询中获得的内容。我必须猜测一下,因为你没有发布足够的信息以确定。
建议#1: 将表定义添加到问题中,以便查看您拥有的列。
建议#2:转储数据
foreach($category as $product){
var_dump($category); // <--- add this
编辑您的问题并发布输出。
我假设您正在寻找html结构,这是一个包含表中所有行的表。你完成循环的方式,最终会得到每个产品的表格。
这是你想要的吗?
table
product
product
product
这是您的代码将产生的内容:
table
product
table
product
table
product