我有以下代碼:避免對MySQL查詢代碼重複(多一會兒)
<?php
include_once "connect.php";
$question_01 = mysqli_real_escape_string($con, $_POST['question_01']);
// $question_02 - $question_09 go here...
$question_10 = mysqli_real_escape_string($con, $_POST['question_10']);
$i = 0;
$array_sum=[];
while ($i < 10){
$i++;
$sql = "SELECT * FROM parteners WHERE question_no = 1 AND answer_variant = '$question_01'";
$result = mysqli_query($con, $sql);
$final_array_1 = array();
while ($row = mysqli_fetch_array($result, MYSQLI_NUM))
{
$final_array_1 = $row;
$array_sum = array_map(function() {
return array_sum(func_get_args());
}, $array_sum, $final_array_1);
}
}
print_r($final_array_1);
正如你所看到的,我需要重複的代碼,每個$問題_ ##。除了重複代碼之外,還有更聰明的方法嗎?我不僅關心將所有事情都變成代碼意大利麪,而且還關心加載時間的操作效率。
讓我知道你是否需要澄清。
更新:基本上應該在查詢中增加了「question_no」的值,直到達到10,並挑選每個問題對應的$ _POST值。
所以有什麼問題?使用'$ i'在循環中構建sql字符串。基本字符串連接。 –
@JuanCarlosOropeza我得到了連接部分。我對這個循環過程更感興趣。我應該保持這兩個時間嗎? – SporeDev
'$ sql =「SELECT * FROM parteners ORDER BY question_no ASC LIMIT 10」;'直接在db中檢查並讓我知道是否顯示所需的輸出? –