0

現在、カテゴリーに基づいて製品を表示するという望ましい効果を達成することができます。しかし、私が行ってきた方法は最善の方法ではないと感じています。商品ページでは、こちらのように商品の上下に隙間があります。ギャップは、htmlのレイアウト方法ではなく、phpコードのエラーが原因であると推測しています。どんな助けでも大歓迎です。

したがって、明確にするために、使用されているコードがこれを達成するための正しい方法であるかどうか、そして誰かがギャップがそこにある理由を見つけることができるかどうか疑問に思っています。

明確にするために、それは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>
4

1 に答える 1

1

iamが正しく理解していれば、Iamは自信がありませんが、CSSの問題だと思います。

試す:

div.link {
  padding: 0px;

}

ul.featured {
  display: block;
  width: 200px;
  margin: 0px;
}
于 2012-12-31T11:18:29.087 に答える