【问题标题】:Get data from multiple tables mySQL [duplicate]从多个表mySQL中获取数据[重复]
【发布时间】:2014-07-18 03:24:23
【问题描述】:

我有 3 张桌子:

男士;具有以下列:image_id、文件名 女性; image_id,文件名 情侣; imagemale(对应于male表中的image_id),imagefemale,votes

基本上,用户会随机看到男性和女性的照片,他们会通过投票是或否来决定他们是否适合,而“情侣”表会通过投票和排名恢复所有这些。 我正在尝试显示前 25 个投票数,但为了显示图片,我需要文件名,而不是我所拥有的图像 ID。

我该怎么做?这是top25页面的语法:

include('mysql.php');

// Get the top25
$results = mysql_query("SELECT * FROM couples ORDER BY votes DESC LIMIT 0,25");
while($row = mysql_fetch_object($results)) $top_ratings[] = (object) $row;


// Close the connection
mysql_close();

然后在html中:

<h2>Top 25</h2>
<center>
   <table>
      <tr>
         <td>
      <tr>
         <td>
            <?php foreach($top_ratings as $key => $filename) : ?>
         <td valign="top"><img src="imagesmale/<?=$filename->imagemale?>" /></td>
         <?php endforeach ?>
         </td>
         <td>
            <?php foreach($top_ratings as $key => $filename) : ?>
         <td valign="top"><img src="imagesmale/<?=$filename->imagefemale?>" /></td>
         <?php endforeach ?>
         </td>
      </tr>
      </td>
      </tr>
   </table>
</center>

谢谢!

【问题讨论】:

  • 简单连接。但是具有三列的单表人员会这样做:(image_id,文件名,性别)。
  • mysql_query 是一个过时的接口,不应在新应用程序中使用,并将在 PHP 的未来版本中删除。像PDO is not hard to learn 这样的现代替代品。如果您是 PHP 新手,PHP The Right Way 之类的指南可以帮助您解释最佳实践。

标签: php html mysql sql


【解决方案1】:

你只需要做#2,但我强烈建议也做#1。

  1. 重组您的表,使其只有一个名为“people”的表。此表将有另一列带有“性别”,很可能是 int(1)
  2. 然后要从 id 中获取图像文件名,您需要像这样(使用旧结构)从 Couples 表中 INNER JOIN 表:
选择 Men.filename AS manfile , Women.filename 作为女人文件, 情侣票 来自情侣 内部联接 男性上的 Couples.imagemale = Men.image_id INNER JOIN 女性上的 couples.imagefemale = Women.image_id ORDER BY votes DESC 限制 25

【讨论】:

    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多