gpt4 book ai didi

php - 显示类别和子类别的查询

转载 作者:行者123 更新时间:2023-11-29 20:47:38 24 4
gpt4 key购买 nike

我想显示类别,然后在鼠标悬停时显示子类别。我有 2 张 table :

create table categorias (
`idCategoria` int NOT NULL PRIMARY KEY,
`nomCategoria` varchar (55) NOT NULL,
`desCategoria` varchar (255),
`tipoCategoria` int (2),
`fotoCategoria` varchar (55),
`metaTiCategoria` varchar (255),
`metaDesCategoria` varchar (255),
`keywordsCategoria` varchar(100)
)

CREATE TABLE IF NOT EXISTS `subcategoria` (
`idSubcate` int(3) NOT NULL AUTO_INCREMENT,
`nomSubcate` varchar(55) NOT NULL,
`fotoSubcate` varchar(255) DEFAULT NULL,
`metaTiSubcate` varchar(255) DEFAULT NULL,
`metaDesSubcate` varchar(255) DEFAULT NULL,
`keywordsSubcate` varchar(255) DEFAULT NULL,
`tipoSubcate` int(1) DEFAULT NULL,
`cateSubcate` int(3) DEFAULT NULL,
PRIMARY KEY (`idSubcate`))

PHP 代码:

 <ul class="grid cs-style-4">
<?
$cate = 'communit_new_site_2016.categorias';
$qry = ("SELECT *
from $cate
where $cate.tipoCategoria = 1 or $cate.tipoCategoria=3
ORDER BY $cate.nomCategoria
");
$rst = mysql_query($qry);
$tN = mysql_num_rows($rst);
$cN = 1;
?>
<?
while($categoria = mysql_fetch_assoc($rst)) {


?>
<li class="col-xs-12 col-sm-12 col-md-3">
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<figure>
<div><img src="<?= $categoria['fotoCategoria'] ?>" alt="<?= $categoria['nomCategoria'] ?>"></div>
<figcaption class="subcate">
<?
$sub = 'communit_new_site_2016.subcategoria';
$catein = 'communit_new_site_2016.categorias';
$qry1 = ("SELECT nomSubcate
from $sub

ORDER BY $sub.nomSubcate
");
$rst1 = mysql_query($qry1);
$tN1 = mysql_num_rows($rst1);
$cN1 = 1;
?>
<?
while($subcate = mysql_fetch_assoc($rst1)) {


?>
<span> <?= $subcate['nomSubcate']?></span>
<?

if($cN1 != $tN1) {
?>

<?
}
$cN1++;
}
?>
</figcaption>
</figure>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<a href=""><span class="caption"><?=$categoria['nomCategoria']?></span></a>
</div>
</li>
<?

if($cN != $tN) {
?>

<?
}
$cN++;
}
?>
</ul>

网页是www.communita.com.mx/interior.php。此外,还有两种类型:室内(内部)和室外(外部)。这就是为什么我使用 tipoCategoria = 1(室内)和 3 来表示室内和室外。

提前致谢。

最佳答案

以下是我使用左连接执行此操作的方法。我没有对此进行测试,因为我没有您的数据库,但它应该向您展示我的方法的总体思路:

首先,执行查询并将行读入按类别 id 分组的多维数组中:

<?php
$cate = 'communit_new_site_2016.categorias';
$sub = 'communit_new_site_2016.subcategoria';
$qry = ("SELECT idCategoria, nomCategoria, fotoCategoria, idSubcate, nomSubcate
FROM $cate c LEFT JOIN $sub s ON c.idCategoria = s.cateSubcate
WHERE tipoCategoria = 1 OR tipoCategoria = 3 ORDER BY nomCategoria, nomSubcate");
$rst = mysql_query($qry);
while ($row = mysql_fetch_assoc($rst)) {
// use the category id as a key here to group the array

// these two values will just overwrite with the same thing if they're repeated
$categorias[$row['idCategoria']]['nomCategoria'] = $row['nomCategoria'];
$categorias[$row['idCategoria']]['fotoCategoria'] = $row['fotoCategoria'];

// the subcategory will be added to an inner array
$categorias[$row['idCategoria']]['subcategoria'][$row['idSubcate']] = $row['nomSubcate'];
}?>

在该结构中拥有一个数组后,输出您尝试获取的 HTML 会更容易。

<ul class="grid cs-style-4">
<?php foreach ($categorias as $categoria): ?>
<li class="col-xs-12 col-sm-12 col-md-3">
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<figure>
<div>
<img src="<?= $categoria['fotoCategoria'] ?>"
alt="<?= $categoria['nomCategoria'] ?>">
</div>
<figcaption class="subcate">
<?php foreach ($categoria['subcategoria'] as $id => $subcategoria): ?>
<span><?= "$id: $subcategoria" ?></span>
<?php endforeach ?>
</figcaption>
</figure>
</div>
<div class="col-xs-12 col-sm-12 col-md-12 text-center">
<a href=""><span class="caption"><?= $categoria['nomCategoria']?></span></a>
</div>
</li>
<?php endforeach ?>
</ul>

关于php - 显示类别和子类别的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38338147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com