2 回答

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
回答您的查詢。下面是我的 SQL。在下面的查詢中,您可以從帖子和單列(即名稱)中選擇所有記錄。
如果您想擁有所有列,請(qǐng)使用 p 對(duì)其進(jìn)行編輯。,C?;蛘咧皇墙o *. 所以它會(huì)為你獲取所有的列。希望這能回答您的疑問。如果不是,請(qǐng)多解釋一下您的問題。
SELECT p.name,c.* FROM cats as c
INNER JOIN posts as p ON cats.id = posts.cat_id;

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊
沒有辦法做你直接問的事情。每個(gè)SELECT語句都是一個(gè)唯一的查詢,它返回?cái)?shù)據(jù)庫驅(qū)動(dòng)程序的結(jié)果,您將通過fetchAll()上面寫的方式獲得結(jié)果。(請(qǐng)注意,有其他的方法來從PHP數(shù)據(jù)庫獲得的值,如fetch()在描述https://www.php.net/manual/en/pdostatement.fetch.php。如果你不需要整套一個(gè)大列表中的結(jié)果,您可能會(huì)考慮使用該方法)
其他評(píng)論者說的是對(duì)的,你想做的是:
SELECT c.title
FROM cats c
INNER JOIN posts p ON c.id = p.cat_id
ORDER BY p.id DESC
這將為您提供所有cats具有關(guān)聯(lián)post. 您可以通過以下方式使用它:
<?php
$sql = "see above SELECT";
$query = $db->prepare($sql);
$query->execute();
$categoryTitles = $query->fetchAll();
foreach ($categoryTitles as $title) {
echo $title['title'];
}
(請(qǐng)注意,該示例將向?yàn)g覽器輸出一大塊文本,您需要將其集成到您自己的 HTML 生成代碼中)
您發(fā)布的代碼:
foreach($posts as $post):
<?php echo $post['title']; ?>
看起來不像完全有效的 PHP。在foreach看起來是一個(gè)外<?php ... ?>塊。如果它在這些塊之一內(nèi),您將嵌套 PHP 塊,例如:<?php foreach($posts as $post) { <?php echo $post['title']; ?> } ?>我認(rèn)為這不是有效的語法。另外你:在foreach我不確定是否有效的語法之后放了一個(gè)。您的示例代碼還name從數(shù)據(jù)庫中選擇列,而不是title您嘗試在 PHP 代碼中檢索的列。
有效語法的一個(gè)例子是:
<?php
// all the PDO code
?>
<!-- some HTML -->
<?php foreach ($posts as $post) { ?>
<div> some more HTML </div>
<? echo $post['title']; ?>
<?php } ?>
執(zhí)行您所詢問的另一種方法是將您的 SQL 代碼轉(zhuǎn)換為存儲(chǔ)過程,但這對(duì)于您當(dāng)前的用例來說可能太復(fù)雜了。
- 2 回答
- 0 關(guān)注
- 244 瀏覽
添加回答
舉報(bào)