2017-07-08 11 views
-4

私は別のセクションに分割されたWebページを持っています。各セクションは異なる結果を表示する必要があります。これらの結果はデー​​タベースから得られます。 は、これが私の心に来るものmysql select文を適切に最適化する方法

http://sqlfiddle.com/#!9/ad98b/1

次のコードがあるSQLfiddle上のサンプルデータであるが、私はこのページが別の人

をすることにより、複数回アクセスしたとき、それは何らかの形でサーバーに過負荷をかけかもしれないと恐れていますセクションZ

TO UP

$sectionA = $connect->query("SELECT * FROM Main_Section WHERE section = `A` 
"); 
while ($row = $sectionA->fetch_array(MYSQLI_BOTH)) 
{ 
    $id = $row["id"]; 
    $name = $row["name"]; 
    $sec_result_a = $sec_result_a.'<p>'.$id.'</p><h3>'.$name.'</h3>'; 
} 

$sectionB = $connect->query("SELECT * FROM Main_Section WHERE section = `B` "); 
while ($row = $sectionB->fetch_array(MYSQLI_BOTH)) 
{ 
    $id = $row["id"]; 
    $name = $row["name"]; 
    $sec_result_b = $sec_result_b.'<p>'.$id.'</p><h3>'.$name.'</h3>'; 
} 

$sectionC = $connect->query("SELECT * FROM Main_Section WHERE section = `C` "); 
while ($row = $sectionC->fetch_array(MYSQLI_BOTH)) 
{ 
    $id = $row["id"]; 
    $name = $row["name"]; 
    $sec_result_c= $sec_result_c.'<p>'.$id.'</p><h3>'.$name.'</h3>'; 
} 

は、私はこれを適切に最適化することができます方法はありますか?

+0

です。質問を編集し、サンプルデータと希望する結果を提供してください。 –

+0

あなたのテーブルにインデックスがないようです。 'section'カラムに' index'を作成します。また、あなたの問題と期待される結果について、さらに詳しい情報を提供してください。 あなたの直面している課題は何ですか?あなたのテーブルにはいくつのレコードがありますか? – money

答えて

1

絵に多くがあります場合を除き、理由だけで、セクション順にすべてを、照会AZを持っていない:

SELECT * FROM Main_Section ORDER BY section 

...そしてのようなものを見ることができる一つのループ、との結果を処理これは

$sections = $connect->query("SELECT * FROM Main_Section ORDER BY section"); 

while ($row = $sections->fetch_array()) 
{ 
    echo $row['section'] . ' ' . '<p>' . $row['id'] . '</p><h3>' . $row['firstname'] . ' ' . $row['lastname'] . '</h3>'; 
} 
関連する問題