次のスクリプトは正しく機能しますが、エレガントではなく、まさしく乱雑なので、私はそれが好きではありません。
高度になりすぎないように(つまり、OOPスタイルは必要ありません)、このコードを手続き型で最小化したいだけです。主にSQLクエリを組み合わせて混乱を解消したいと思います。
//get page url and query db to find the correct page
$this_page = $_GET['page'];
$this_page = escape_data($_GET['page']);
//Make sure page exists - if it doesn't redirect the browser
$SQL_page_exist = "SELECT * FROM pages_learn_more WHERE page_title = '$this_page'";
$SPE_result = mysql_query($SQL_page_exist);
while ($details = mysql_fetch_array($SPE_result))
{
$page_id = $details['id'];
$page_title = $details['page_title'];
$main_title = $details['main_title'];
$main_content = $details['main_content'];
$sub_title = $details['sub_title'];
$sub_content = $details['sub_content'];
}
if(mysql_num_rows($SPE_result) == 0)
{
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=page_not_found.php">';
} else {
$SQL =
"SELECT ptt.tool_tip_link
FROM pages_tool_tip ptt
JOIN pages_to_pages ptp
ON ptp.tool_tip_id = ptt.tool_tip_id
WHERE ptp.learn_more_id = '$page_id'";
$result = mysql_query($SQL); // or die(mysql_error());
//set array for reference_keys variable which may contain 0 to 20 keys
$reference_keys = array();
while ($db_field = mysql_fetch_array($result))
{
$reference_keys[] = $db_field['tool_tip_link'];
}
さて、上記のコードは正常に機能しますが、非常に醜く、過去2時間、クリーンでシンプルで美しいものに改良しようとしていますが、残念ながら私のスキルはまだありません。取得するのはmysqlだけです。エラー。
私の最近の試みは次のとおりです。
$SQL =
"
SELECT *
FROM pages_learn_more plm
JOIN pages_tool_tip ptt, pages_to_pages ptp
ON ptp.tool_tip_id = ptt.tool_tip_id
WHERE plm.page_title = '$this_page' AND ptp.learn_more_id = plm.id
";
$result = mysql_query($SQL); // or die(mysql_error());
$reference_keys = array();
while ($details = mysql_fetch_array($result))
{
$reference_keys[] = $details['tool_tip_link'];
$page_id = $details['id'];
$page_title = $details['page_title'];
$main_title = $details['main_title'];
$main_content = $details['main_content'];
$sub_title = $details['sub_title'];
$sub_content = $details['sub_content'];
}
**これは、このコードのクリーンアップに30回失敗したようなものです。知識のある人が私を助けてくれますか?可能であればあなたの意見を説明してください...
ありがとうございました **
補足として:PHPmyAdminで多くのクエリを試しましたが、SELECT of FROMステートメントのテーブルの順序が結果に影響することを教えてくれました。たとえばSELECT pages_learn_more plm, pages_tool_tip ptt
!= SELECT pages_tool_tip ptt, pages_learn_more plm
そしてこれらのステートメントの順序がどのように影響するかわかりません結果。(完全なクエリで使用すると、1はエラーになり、他はテーブルを表示します)
それが助けになるなら私のデータベーススキームの写真