获取连接while循环内的表的图像集

时间:2014-01-25 18:02:30

标签: php html mysql

我只是注册Stack Overflow,我找了一个像这样的帖子,但我找到的是一组不同的帖子,但我还不够聪明(还有!)把它们放在一起回答我的问题。

我喜欢学习编程,在我完成在线课程或书籍之后,让我们说“真实”的例子。


What I would like to achieve

正如您在我的链接中看到的那样,我想要实现的目标。最初我将所有数据放在一个表中,但我一直在这个网站上阅读,这不是最好的做法,只能在一个字段中存储用逗号分隔的图像路径。所以现在我有:

  • 包含所有信息的1张表。
  • 1张表(目前为止),其中包含我的第一个广告的图片集。

所以,我的问题是,我不知道我是如何加入表格并使用while循环来获取每个广告所需的图片数量,以后再使用这些图片灯箱画廊......

到目前为止,我每张广告只能放1张图片! :S

我的第一张表的结构如下

| ID | HOUSE-TYPE | CITY |标题|描述| PICS | SQRMETER |价格| TELPHONE |电子邮件

我的第二张表的结构如下:

| ID |路径|标题| ALT |

到目前为止我的代码:

    $result = mysqli_query($con,"SELECT * FROM t_test");

while($row = mysqli_fetch_array($result))
  {
    echo "<div class='ad'>" .
             "<h2>" .  "OFFER " . $row[offer] . $row[house-type] . " in " . $row[city] . 
             "</h2>" .
             "<h1>" . $row[title] . "</h1>" .
             "<p>" . $row[description] . "</p>" . 
             "<img src='" . $row[photo] . "'/>" .
             "<p class='pics-per-ad'>" . "TOTAL PICS" . "</p>" .
             "<p class='square-meters'>" . $row[sqmeter] . " metros 2" . "</p>" .
             "<p class='price'>" . $row[price] . " Euros" . "</p>" . 
             "<p class='telephone'>" . $row[telphone] . "</p>" . 
             "<p class='email'>" . $row[email] . "</p>" .                                
        "</div>"; 

  }

mysqli_close($con);

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

每个广告都可以有多个图片,因此您需要在数据库中设置“一对多”关系。您可以使用外键来完成此操作。

  • 在广告表格中,每个广告都有一个唯一的ID
  • 在pics表中,除了每个它的拥有唯一ID之外,还应该为其所属的ads_ID添加一个字段。
  • 当您显示广告ID x时,您查询数据库以获取ads_ID x的所有图片:

“SELECT * FROM pics WHERE ads_ID = x”

答案 1 :(得分:0)

有许多解决方案可以帮助您实现目标。我建议保持这一点很简单,就是在你的pics表中添加另一个名为linked的列,这会将你的图片链接到你的广告。

请尝试按以下步骤操作。

  1. 在pic表格中创建一个名为“已链接”的列

    ALTER TABLE ads ADD linked VARCHAR(255)
    
  2. 在您的pics表和广告表之间创建外键关系。 (例如,如果您的广告被删除或更新,它也会从图片表中删除您的图片)

  3. 在您的代码中通过执行此类操作来加入您的表。

    $query = '
    SELECT ads.*, pics.*  FROM ads
    LEFT JOIN pics ON pics.linked = ads.id
    ';
    
    $result = mysqli_query($con,$query);