[ POSTS ]
| id | title | class |
|----|----------|-------|
| 1 | 4567 | 2 |
| 2 | 1234 | 1 |
| 3 | 9124 | 1 |
| 3 | 9124 | w |
________________________
我如何SELECT
多个class column
值,并将其echo
中的HTML
排序为
$query = "SELECT * FROM posts WHERE id = :id"
$statment= $conn->prepare($query);
$statment->execute([':id' => $id]);
while($row = $stmt->fetch()){
$title1 = $row['title'] //WHERE THE CLASS IS 1
$title2 = $row['title'] //WHERE THE CLASS IS 2
echo"
<a>$title1</a>
<a>$title2</a>
}
如何指定其类出现的标题?我已经使用了id
,但我想使用class
之类的
$title1 = $row['id'], AND $row['class'] = 1
$title2 = $row['id'], AND $row['class'] = 2
$titleo = $row['id'], AND $row['class'] = w
对其进行排序while echo
或者我必须去
$query = "SELECT * FROM posts WHERE id = :id AND class = 1"
$query = "SELECT * FROM posts WHERE id = :id AND class = 2"
$query = "SELECT * FROM posts WHERE id = :id AND class = 'w'" //FOR STRINGS
答案 0 :(得分:1)
我认为你在寻找
SELECT * FROM Posts WHERE class in (1,2,'w') ORDER BY class ASC
这将为您提供In()语句中具有类值的所有帖子。它将分别显示每个记录,这意味着对于具有多个类值的标题,您将有两行。因为看起来你想用PHP分隔它们应该没问题。然后你可以在你的while循环中这样做:
$classes = array();
while($row = $stmt->fetch()){
if(!isset($classes[$row['class']])){ $classes[$row['class']] = array(); }
$classes[$row['class']][] = $row['title'];
}
这将为每个类提供标题数组:
[
1=>[1234,9124]
2=>[4567]
'w'=>[9124]
]
然后你可以按照班级或班级的顺序输出它们:
foreach($classes as $key => $class){
echo "Class Value: ".$key; // just to show the order
foreach($class as $title){ echo "<a>".$title."</a>"; }
}
最终会给你:
Class Value: 1
<a>1234</a>
<a>9124</a>
Class Value: 2
<a>4567</a>
Class Value: w
<a>9124</a>
我不完全确定这是否会引导您找到您想要的内容,但是,它确实为您提供了一个工作流程,可以按班级订购帖子并根据班级输出。我希望这有帮助