2016-04-03 36 views
0

我对PHP和数据库查询很陌生。数据库选择和查询问题 - PHP

我有一个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 &quot;details and prices&quot;.</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: &pound;".$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 &quot;details and prices&quot;.</p>"; 

出于某种原因,类别名称不被输出,正如我说之前,我已经尝试了不少解决方案我找到了,但他们没有工作,所以我显然做了一些完全错误的事情。

可以在任何的你在那里帮助?

非常感谢提前。

回答

2

使用$category[0]->prod_cat_1您没有正确访问数组值。 [0]这里是关键

编辑:

print("<pre>".print_r($category,true)."</pre>");查询后,看看你是如何得到的结果。

+0

你是一个绝对的明星,非常感谢你,完美的作品。你能解释一下[0]是怎么做的,所以我有一个未来参考的想法? – SharpenedPixels

+0

@SharpenedPixels做什么'print(“

".print_r($category,true)."
”);'在查询之后,看看你如何得到结果。试着了解多维数组是如何工作的。如果你有任何问题。我会帮你。:)如果你发现我的答案有帮助,你可以接受它。 – Dray

+0

好吧,我有点看到,就是说从stdClass Object [0]获取信息,所以如果没有记录存在,就不会输出任何内容。它现在可以工作,因为所有类别都至少有一条记录。谢谢您的帮助。 – SharpenedPixels

0

在所有的可能性,你是不是访问你得到了什么从查询回到正常。我必须猜测一点,因为你没有发布足够的信息来确定。

建议#1: 添加您的表定义的问题,所以我可以看到你有什么列。

建议#2:转储数据

  foreach($category as $product){ 
       var_dump($category); // <--- add this 

编辑您的问题,并张贴输出。

我假设您正在寻找html结构,该结构是表格中所有行的表格。您制作循环的方式,最终将为每个产品提供一张表格。

这是你想要的吗?

table 
    product 
    product 
    product 

这是你的代码会产生什么:

table 
    product 
table 
    product 
table 
    product 
+0

感谢您的回复,这不是表格格式的问题。这是我想要的。在其中显示每个产品自己的表格,以便我可以设计每个单独的表格。 这只是我希望作为标题发布的类别的名称,并且不起作用。 @Dray回答了一个可行的解决方案,但感谢你的时间。 – SharpenedPixels