php - 可以在 MySQL 中运行 WHILE 循环吗?

标签 php mysql

在 while 循环中使用传递的每一行的 ID 从另一个表获取结果的 mysql 查询是否可以?或者有更好的方法吗?

$q = $__FROG_CONN__->query("SELECT cms_page.id, cms_page.title, cms_page.slug, cms_page_part.* FROM cms_page LEFT JOIN cms_page_part ON cms_page_part.page_id=cms_page.id WHERE cms_page.parent_id='8'");
$r = $q->fetchAll(PDO::FETCH_ASSOC);

echo '<ul id="project-list">';
  foreach ($r as $row) { 
    echo '<li>';
    echo '<a href="'.$row["slug"].'.html"><img src="<img src="phpThumb/phpThumb.php?src=public/images/'.$row[0].'/th.jpg&w=162" alt="" /></a>';
    echo '<div class="p-text">';
    echo '<h4>'.$row["location"].'<span>'.$row["project_date"].'</span></h4>';
    echo '<p>'.$row["body"].'</p>';
    echo '</div>';
    echo '</li>';
  }
echo '</ul>';

我正在尝试从 sql 查询匹配的另一个表中提取 project_date、body 和 location 字段。标题和 slug 保存在另一个表中。最多应该只有八个左右的结果,但我得到了更多。

最佳答案

使用 IN 的建议很好,但如果您从另一个查询获取 ID,最好使用连接将这两个查询组合成一个查询。

代替:

SELECT id FROM users WHERE age <30
SELECT id, x FROM userinfo WHERE userid IN ($id1, $id2, ..., $idn)

做:

SELECT users.id, userinfo.x
FROM users
LEFT JOIN userinfo ON userinfo.userid = users.id
WHERE age < 30

关于php - 可以在 MySQL 中运行 WHILE 循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958290/

相关文章:

mysql - 如何将 mysql 二进制(16) key 转换回十六进制字符串

php - 单引号不解析

php - 网页生成(类似 CMS)

php - 如何保持MySQL结果的顺序?

php - 如何克服TCPDF ERROR : [Image] Unable to get image?

php - 通过浏览器上传大文件(100 GB)

php - 获取深度多维数组的所有 child

java - Java 类之间的共享数组列表

php - 如何在我的 in php 应用程序中修复来自 sqlite 的这些警告?

PHP error_log 在 Mac OSX 上将换行符输出为文字 "\n"字符串