こんにちは、私はちょうどPHPでMySQLを学び始めました。私のチュートリアルのレッスンでは、 "科目"と "ページ"の2つのテーブルを持つ1つのデータベースを作成しました。これらはリレーショナルデータベースです。 "subject"の主キーは、MySQLのsubject_idという変数を通してページテーブルから呼び出されます。最終的には、「サブジェクト」がカテゴリ、「ページ」がサブカテゴリであるナビゲーションメニューであるはずです。なぜページIDは無関係な番号ですか?
<div class="col-md-3 sidebar">
<ul>
<?php $subject_set = find_all_subjects(); ?>
<?php while($subject = mysqli_fetch_assoc($subject_set)){ ?>
<li><a href="manage_content.php?subject= <?php echo urlencode($subject["id"]);?>"><?php echo $subject["menu_name"];?></a>
<?php $page_set = find_pages_for_subjects($subject["id"]); ?>
<ul>
<?php while($page = mysqli_fetch_assoc($page_set)){ ?>
<li>
<a href="manage_content.php?page= <?php echo urlencode($page["id"]);?>"><?php echo $page["menu_name"];?></a>
</li>
<?php } ?>
<?php mysqli_free_result($page_set);?>
</ul>
</li>
<?php } ?>
<?php mysqli_free_result($subject_set);?>
</ul>
</div>
と私のfunction.phpに私が持っている:今、出力があるべき
<?php
function confirm_query($result_set){
if (!$result_set){
die("DB Query Failed");
}
}
function find_all_subjects(){
global $connection;
$query = "select * ";
$query .= "from subjects ";
$query .= "where visible = 1 ";
$query .= "order by position asc";
$subject_set = mysqli_query($connection, $query);
confirm_query($subject_set);
return $subject_set;
}
function find_pages_for_subjects($subject_id){
global $connection;
$query = "select * ";
$query .= "from pages ";
$query .= "where visible = 1 ";
// an aditional line to relate pages to the subject, subject_id is what rlate two tables together
// dont forget space between lines
$query .= "AND subject_id = {$subject_id} ";
$query .= "order by position asc";
$page_set = mysqli_query($connection, $query);
// the result captured can not be used twice for two different queries
// so result varibale should have unique names
confirm_query($page_set);
return $page_set;
}
?>
単純なクエリを、私は私のPHPコードで今すぐ tables
このようなもの:
問題は、おそらく3〜4のURLにある主題IDを取得するはずのページをクリックしたときですが、代わりに取得しています。
localhost:8888/CMS/public/manage_contentドット)php?page =%201
"(ドット)です。 "
どこから来たのですか?最初のページの場合は1の元の番号に戻すにはどうしたらいいですか?もっと情報が必要な場合は、私の全ファイルをどこにこのことから来る
は余談として、あなたに
「=」の後のスペースを削除するには?page = <?php echo urlencode –
'%20'はURLのエンコードされた値ですので'本当に '?page = 1' – RamRaider
Andrej LudinovskovとRamRaiderさん、ありがとうございました。 :// localhost:8888/CMS/public/manage_content(dot)php?page = 1このチュートリアルでは、URLの変更だけがページに反映されますが、ページは変わらず、 "Not Found"ページに移動します。どういう考えがありますか? – ali