だから私は作成中のエクササイズサイトを持っていて、現在何百ものエクササイズが表示されています。MySQLデータベースからデータをプルするのに問題はありません。私の問題は、各演習を別々のページで表示できることです。現時点では、すべての演習がこの関数を使用して引き込まれています。
//Category 1 is biceps
$cat = 1;
//$category is used for the case statement, to allow the form to submit and refresh to the case statement that it is on, for each instance of the function.
$category = 'biceps';
show_exercise($cat, $category);
関数自体は次のとおりです。
//Show exercises based on exercise category
function show_exercise($cat, $category)
{
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "SELECT * FROM exercises WHERE cat_id='$cat' ";
$result = mysqli_query($dbc, $query);
while($row = mysqli_fetch_array($result))
{
$output[] = '<div class="item">
<h2>'. $row['name'] .'</h2>
<img src="'. $row['image'] .'" alt="'. $row['name'] .'" />
<input class="button" type="submit" name="add" value="add" />
<a href="index.php?p=view"><input class="button" type="submit" name="view" value="view"/></a>
</div>';
}
echo join('', $output);
}
これで、さまざまな演習をすべて1つのページに配列としてまとめることができます。個々のエクササイズを選択して表示できるようにしたいのですが、方法がわかりません。1つの方法は、すべての演習用のページを作成することですが、私には何百もあります。上記のコードのボタンは使用されていませんが、誰かが「表示」ボタンをクリックすると、演習の別のページに移動して詳細を読むことができます。上記のコードでデータベースから使用されたすべてのデータは、個々の演習ページで使用できます。
私のページはswitchステートメントで管理されていますが、答えが変わる可能性があるので、これについて言及したいと思います。これが私が使用しているswitchステートメントです:
// Validate what page to show:
if(isset($_GET['p']))
{
$p = $_GET['p'];
}
elseif(isset($_POST['p']))
{
// Forms
$p = $_POST['p'];
}
else
{
$p = NULL;
}
// Determine what page to display:
switch ($p)
{
case 'contact' :
$page = 'contact.php';
$page_title = 'Contact Us';
break;
case 'exercises' :
$page = 'exercises.php';
$page_title = 'Exercises';
break;
case 'routines' :
$page = 'routines.php';
$page_title = 'Your Routines';
break;
case 'arms' :
$page = 'arms.php';
$page_title = 'arms routine';
break;
}
このステートメントは、さらに多くのページで続きます。私はこの音をそれが何であるかよりも難しくしているのかどうかわかりません。ご不明な点がございましたら、コメントさせていただきます。