如何重構此函數以處理每個字母(a到z)我不想爲每個字母重新編寫查詢。重構字母通配符語句
顯示HTML:
<div class="questionWrapper">
<div class="question">
<h3>A</h3>
<?php foreach ($categoryA as $category) : ?>
<p class="view"><?= $category['category']; ?></p>
<?php endforeach; ?>
</div>
</div>
查詢例如:
$categoryA = query('SELECT * FROM category WHERE category LIKE "A%"',
array('category' => ['category']),
$conn);
$categoryB = query('SELECT * FROM category WHERE category LIKE "B%"',
array('category' => ['category']),
$conn);
功能:
function query($query, $bindings, $conn)
{
$stmt = $conn->prepare($query);
$stmt->execute($bindings);
return $stmt;
}
使用for循環,因爲您正在操作。你在正確的軌道上,只是爲了循環字母表,如果你使用a-z(definitelY)。 'foreach(range('a','z')as $ i){if($ string == $ i){0} {0} } } '然後,對於您的查詢:...「WHERE category LIKE'」。$ i。「%'」;在你的for循環中。 – user1947561
如果您經常這樣做,您可能需要添加一個'category_first_letter'列或可正確編入索引的類別。另外,當你明確地嘗試時,爲什麼不在查詢中使用佔位符? '類別LIKE:category'。 – tadman
您是否指一個查詢中的所有類別結果?也不知道$綁定在那裏做什麼,因爲你的查詢傳遞字符串文字,id也改變你的函數查詢輸入順序($ conn,$ query,$ bindings = array()) – ArtisticPhoenix