Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据类别ID在数据库中显示产品_Php_Mysql - Fatal编程技术网

Php 根据类别ID在数据库中显示产品

Php 根据类别ID在数据库中显示产品,php,mysql,Php,Mysql,目前,我能够根据产品类别实现预期效果。然而,我觉得我所采取的方式并不是最好的方式。在产品页面上,产品顶部和底部之间存在间隙。我认为差距是由于php代码中的错误造成的,而不是因为html的布局方式。任何帮助都将不胜感激 因此,为了澄清这一点,我想知道所使用的代码是否是实现这一点的正确方法,以及是否有人能够发现为什么会存在这样的差距,这将是完美的 只是澄清一下,这显然不是css的问题。没有应用边距,我希望黑线完全消失。它应该是全白色的 谢谢你,祝你新年快乐 PHP代码 <?php functi

目前,我能够根据产品类别实现预期效果。然而,我觉得我所采取的方式并不是最好的方式。在产品页面上,产品顶部和底部之间存在间隙。我认为差距是由于php代码中的错误造成的,而不是因为html的布局方式。任何帮助都将不胜感激

因此,为了澄清这一点,我想知道所使用的代码是否是实现这一点的正确方法,以及是否有人能够发现为什么会存在这样的差距,这将是完美的

只是澄清一下,这显然不是css的问题。没有应用边距,我希望黑线完全消失。它应该是全白色的

谢谢你,祝你新年快乐

PHP代码

<?php
function get_posts($id = null, $cat_id = null) {
    $posts = array();

    $query ="SELECT  `products`.`id` AS  `name` ,  `products_cat`.`id` AS  `category_id` , `products`.`name` AS `title` ,  `description` ,  `price` ,  `sale` ,  `picture` 
FROM  `products` 
INNER JOIN  `products_cat` ON  `products`.`prod_id` =  `products_cat`.`id` ";

    if ( isset($id) ) {
    $id = (int) $id;
    $query .= " WHERE `products`.`id` = {$id}";
    }

    if ( isset($cat_id) ) {
        $cat_id = (int) $cat_id;
        $query .= " WHERE `products_cat`.`id` = {$cat_id}";
}

    $query .= " ORDER BY `products`.`price` DESC";

    $query = mysql_query($query);
    echo mysql_error();
    while ( $row = mysql_fetch_assoc($query) ) {
        $posts[] = $row;
        }

    return $posts;
}

function category_exists($field, $value) {
    $field = mysql_real_escape_string($field);
    $value = mysql_real_escape_string($value);

    $query = mysql_query("SELECT COUNT(1) FROM `products_cat` WHERE `{$field}` = '{$value}'");

    echo mysql_error();

    return ( mysql_result($query, 0) == '0' ) ? false : true; 
}

?>

HTML代码

<?php
include("../script/dbconnect.php");
include("../script/get_product.php");

$posts = get_posts(null, $_GET['id']);

?>

<div style="width:100%; height:150px; background-color:white;"><span style="font-family:saxMonoRegular; letter-spacing:2px; display:block; font-size:4.5em; text-align:center; padding-top:15px;"> Blog </span></div>

<div class="link" style="width:100%; background-color: white">
<?php
foreach ( $posts as $post ) {
    if ( ! category_exists('name', $post['name']) ) {
        $post['name'] = 'Uncategorised';
    }
    ?>      
    <ul class='featured'>

            <li class='headhighlight'><?php echo $post['title']; ?></li>  
            <li class='pricehigh'><?php echo $post['price']; ?></li>
            <li class='imagefeat'><img class='imagelink' src='<?php echo $post['picture']; ?>' alt='$name'></li>                
            </ul>   

    <?php
    }
?>
</div>

博客


如果我理解正确,我不是舒尔,但我想说这更多的是CSS的问题

尝试:

}


你的意思是什么?你能用红色在图片上显示这些间隙吗?在上面的链接中有一张图片。这是产品顶部和底部之间的黑线。很抱歉,我一直在唠叨这个问题,但是请停止使用不推荐使用的
mysql\uquot.*
扩展。改用
PDO
mysqli*
(注意
mysqli*
中的
i
,它代表改进)@Elias Van Ootegem是的,我正在修改所有代码。我只是想先让它充分发挥作用。谢谢,你好。这显然不是css。请您提供一个实例,并再次解释这个问题。如果我理解正确的话,你更喜欢产品之间的黑线,而不是上面和下面的黑线?嗨,我一点也不想要黑线。黑线正在出现,我不知道为什么。它应该是一个干净的白色背景,没有黑线。不幸的是,我正在本地主机上运行它,因此无法提供一个实时示例。为了澄清我需要的黑线完全消失,它是所有的白色。好改变了我的答案。Iam仍然认为这是一个css问题。php和html都可以。在你的css或者浏览器默认的css中有一些错误。我很惊讶,但这确实奏效了。非常感谢绿路虎。我非常自信这不是css,但我们都会犯错误:)再次感谢,新年快乐!
div.link {
  padding: 0px;
ul.featured {
  display: block;
  width: 200px;
  margin: 0px;
}