数据库选择和查询问题 - PHP

时间:2016-04-03 16:53:42

标签: php mysql sql

我是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 &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 个答案:

答案 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