2016-11-29 85 views
0

我的表看起来像这样: enter image description hereMySQL的 - 有一个独立的ID为每个类别

所以在PHP我有以下几点:

$result = db_query("SELECT * FROM siteData WHERE category = '$temp_cat' ORDER BY id DESC LIMIT $offset, $rowsperpage"); 
// db_query() is a custom function which executes mysqli queries to the db 

我在我的后置HTML显示id和将其用作帖子的固定链接。这一切都很好,但是当我决定按类别进行过滤我看到以下内容:

Main page

- 后标题 -

-2- < - 发布ID

- 帖子内容 -

- 后Footer-


- 后标题 -

-1- < - 发布ID

- 后内容 -

- 后Footer-

About Page

- 后标题 -

-4- < - 发帖ID

- 后内容 -

- 后Footer-


- 后标题 -

-3- < - 发布ID

- 后内容 -

-Post Footer-

等等......我的意思是,帖子具有误导性的ID,这些ID在创建后会自动增加。这导致About Page开始后有id = 3而不是id = 1。是否有任何可能的方法使它分别计算不同类别的ID?

+0

我刚刚开始理解SQL,你能告诉我一个示例查询吗? –

+0

每个类别都有自己的页面。所有这些页面显示的帖子'WHERE category =“something”'...但帖子是由'id'命令的,这意味着我将在'category 1'中创建一个帖子,它将具有'id = 1',用于例。然后,我将为'category 2'创建一个帖子,并且由于id = AUTO_INCREMENT',它将拥有'id = 2'。这里的问题是'category 2'中只有** 1 **的帖子,所以它不应该有'id = 2'。我希望我更清楚地告诉你。 –

+0

我想我的数据库结构应该归咎于上述行为...如果有什么方法重新安排数据库中的列或更好 - PHP的方式来解决它,我很乐意接受它作为这个问题的答案。 –

回答

0

按照讨论,这是我在我的select.php文件:

<?php 
    while ($row = mysqli_fetch_array($result)) { 
     $id = $row['id']; 
     $title = $row['title']; 
     $category = $row['category']; 
     $date = $row['date']; 
?> 
     Category: &#8220;<?php echo $category; ?>&#8221; 
     &#160;<span class="fa fa-fw fa-lg fa-chevron-right" aria-hidden="true"></span>&#160; 
     Title: <a href="edit.php?id=<?php echo $id; ?>" hreflang="en">&#8220;<?php echo $title ?>&#8221;</a> 
     &#160;<span class="fa fa-fw fa-lg fa-chevron-right" aria-hidden="true"></span>&#160; 
     Date: <time datetime="<?php echo $date; ?>"><?php echo $date; ?></time><br> 
<?php 
    } 
?> 

然后我SELECT后由id$_GET从URI和显示一些form持有后特异性元素值。然后我更新数据库中的数据。

相关问题