PHP 动态链接问题 - 需要解释


PHP Dynamic Links issues - need explanation

首先我想说我是php的新手。

我正在为一家虚构的音乐商店创建一个 php 网站。我创建了一个数据库,并使用php将我的所有信息从数据库插入到网站。在我的项目中,我有三个链接,分别是"主页,关于我们,联系我们"。我使用此代码在我的网站中插入了这三个链接

<?php 
$id = $_GET["id"];
$query = mysql_query ("SELECT id,menu_title,target FROM menu_titles");
while($result = mysql_fetch_assoc($query)){
$id = $result["id"];
$title = $result["menu_title"];
$target = $result["target"];
echo "<li><a href='index.php?id=$id&title=$title&target=$target'>$title</a></li>";
}
?>

上面的代码将遍历我的数据库并获取链接。

我的数据库中的表有 3 列,分别是"id、menu_title、target"。

我添加了"目标"列,以便将其与 $_GET 一起使用,因此它将向我显示不同的内容。

此外,我还创建了about_us.php文件,因此在按"关于我们"链接时,它将用户带到该页面。

我的问题是如何更改网站的链接以显示有关该特定链接的内容?例如,"首页"显示索引.php"关于我们"仅显示about_us.php内容,"联系我们"显示contact_us.php内容

索引.php工作正常,我遇到的问题是其他链接内容。

请解释我如何让我的链接工作并在按下链接"关于我们"时打开about_us.php文件,以及"联系我们"也是如此。

谢谢。

<?php
error_reporting(E_ERROR | E_PARSE);
include ("includes/layouts/header.php");
include ("includes/database/db.php");
$id = $_GET["id"];
$target = $_GET["target"];
?>
<!-- START OF THE MAIN SLIDER -->
<div class='container-fluid col-xs-12'>
<div class='carousel_bg'>
<div id='carousel' class='owl-carousel owl-theme'>
<img src='images/slideshow_imgs/adele_slideshow.jpg' alt='adele_photo'>
<img src='images/slideshow_imgs/multiple_covers_slideshow.jpg' alt='multiple_music_covers_photo'>
<img src='images/slideshow_imgs/oranged_up_slideshow.jpg' alt='oranged_up_photo'>
<img src='images/slideshow_imgs/random_covers_slideshow.jpg' alt='random_music_covers'>
<img src='images/slideshow_imgs/sean_tizzle_slideshow.jpg' alt='sean_tizzle_photo'>
</div>
</div>
</div>
<!-- END OF MAIN SLIDER -->
<!-- MAIN SECTIONS STARTS -->
<!-- TOP SECTION STARTS HERE -->
<section>
<div class='container dark_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 1");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div> 
<div class='devider'>
</div>
</div>

<div class='row'>
<?php
$query = mysql_query ("SELECT * FROM top_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"]; 
$id = $result["id"]; 
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
</div>
<!-- TOP SECTION END HERE -->
<!-- MIDDLE SECTION STARTS HERE -->
<div class='container light_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 2");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div>
<div class='devider'>
</div>
</div>
<div class='row'>
<?php
$query = mysql_query ("SELECT * FROM middle_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"];
$id = $result["id"];
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
<!-- end of row -->
</div>
<!-- END OF MIDDLE SECTION CONTAINER -->
<!-- BOTTOM SECTION STARTS HERE -->
<div class='container dark_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 3");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div>
<div class='devider'>
</div>
</div>
<div class='row'>

<?php
$query = mysql_query ("SELECT * FROM bottom_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"];
$id = $result["id"];    
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
<!-- end of row -->
</div>
<!-- SMALL SLIDER STARTS HERE -->
<div class='container'>
<div class='carousel_bg'>
<div class='row thumbs'>
<div class='title'>
<h3>UPCOMING SONGS</h3>
</div>
<div class='devider'>
</div>
<div class='col-md-1'></div>
<div class='col-md-10'>
<div id='carousel_thumb' class='owl-carousel owl-theme'>
<img src='images/slideshow_small_imgs/bob_marley.jpg' alt='bob_marley_photo'>
<img src='images/slideshow_small_imgs/coldplay.jpg' alt='coldplay_photo'>
<img src='images/slideshow_small_imgs/music_covers.jpg' alt='random_covers'>
<img src='images/slideshow_small_imgs/the_neverclaim.jpg' alt='the_neverclaim_photo'>
<img src='images/slideshow_small_imgs/twenty_one_pilots.jpg' alt='twenty_one_pilots_photo'>
</div>
</div>
<div class='col-md-1'></div>
</div>
</div>
</div>
<!-- END OF SMALL SLIDER CONTAINER -->
<!-- SMALL SLIDER STARTS HERE -->
</section>
<?php
include ("includes/layouts/footer.php");
?>
您需要在

index.phpinclude您想要的页面的文件。

这会将$target.php的内容嵌入您在index.php中选择的任何位置。我建议将其放在生成链接的while()循环下方。

if($target == "index"){
    //dont include a page here as you're already in index and you don't want the page to include itsself.
} else {
     include($target.".php");
}

还值得注意的是,axiac在问题的评论中提到了一些事情。

  1. mysql_扩展从 PHP 5.5 开始被弃用,从 PHP 7.0 开始被删除。更改扩展很简单,您应该使用这些文档链接之一。mysqli_或PDO的MYSQL。

  2. $id$id = $_GET["id"];在代码中是多余的。您仅使用数据库表行的$title$target属性。

编辑:特定于您的索引页面,您需要将index.php content移动到另一个文件,也许indexcontent.php。这使主要内容与页面的统计部分(如导航和内容"区域"(分开。

或者,您可以将内容保留在index.php中,并将if语句包装在我在下面分隔的内容周围。

然后,您将拥有以下内容:

index.php

<?php
error_reporting(E_ERROR | E_PARSE);
include ("includes/layouts/header.php");
include ("includes/database/db.php");
$id = $_GET["id"];
$target = $_GET["target"];
?>
<!-- START OF THE MAIN SLIDER -->
<div class='container-fluid col-xs-12'>
<div class='carousel_bg'>
<div id='carousel' class='owl-carousel owl-theme'>
<img src='images/slideshow_imgs/adele_slideshow.jpg' alt='adele_photo'>
<img src='images/slideshow_imgs/multiple_covers_slideshow.jpg' alt='multiple_music_covers_photo'>
<img src='images/slideshow_imgs/oranged_up_slideshow.jpg' alt='oranged_up_photo'>
<img src='images/slideshow_imgs/random_covers_slideshow.jpg' alt='random_music_covers'>
<img src='images/slideshow_imgs/sean_tizzle_slideshow.jpg' alt='sean_tizzle_photo'>
</div>
</div>
</div>
<!-- END OF MAIN SLIDER -->

<?php
if($target == "index"){
    include("indexcontent.php");
} else {
     include($target.".php");
}
?>

<?php
include ("includes/layouts/footer.php");
?>

indexconent.php

<!-- MAIN SECTIONS STARTS -->
<!-- TOP SECTION STARTS HERE -->
<section>
<div class='container dark_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 1");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div> 
<div class='devider'>
</div>
</div>

<div class='row'>
<?php
$query = mysql_query ("SELECT * FROM top_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"]; 
$id = $result["id"]; 
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
</div>
<!-- TOP SECTION END HERE -->
<!-- MIDDLE SECTION STARTS HERE -->
<div class='container light_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 2");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div>
<div class='devider'>
</div>
</div>
<div class='row'>
<?php
$query = mysql_query ("SELECT * FROM middle_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"];
$id = $result["id"];
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
<!-- end of row -->
</div>
<!-- END OF MIDDLE SECTION CONTAINER -->
<!-- BOTTOM SECTION STARTS HERE -->
<div class='container dark_grey_color cont_space'>
<div class='row dark_grey'>
<div class='title'>
<?php
$query = mysql_query ("SELECT id,title FROM sections_titles WHERE id  = 3");
$result = mysql_fetch_assoc($query);
if (isset($_GET["id"]))
$id = $result["id"];
$title = $result["title"];
echo "<h3>$title</h3>";
?>
</div>
<div class='devider'>
</div>
</div>
<div class='row'>

<?php
$query = mysql_query ("SELECT * FROM bottom_albums_info ORDER BY id DESC LIMIT 4");
while($result = mysql_fetch_assoc($query)){
$album_name = $result["album_name"]; 
$img = $result["image"]; 
$artist = $result["artist"]; 
$company = $result["company"]; 
$genre = $result["genre"]; 
$price = $result["price"]; 
$buy = $result["buy_now"];
$id = $result["id"];    
echo "<div class='col-md-3 col-xs-6'>
<a href ='index.php?id=$id&artist=$artist&company=$company&genre=$genre&price=$price' class='box_link_hover'><div class='box'>
<div class='inside_box'>
<div class='small_title'>
<h4>$album_name</h4>
</div>
<div class='photo_box'>
<img src=$img class='img_dim'>
</div>
<div class='info'>
<p>Artist: $artist</p>
<p>Company: $company</p>
<p>Genre: $genre</p>
<p>Price: $$price</p>
</div>
</div>
<div class='buy_now'>
<p>$buy</p></a>
</div>
</div>
</div>";
}
?>
</div>
<!-- end of row -->
</div>
<!-- SMALL SLIDER STARTS HERE -->
<div class='container'>
<div class='carousel_bg'>
<div class='row thumbs'>
<div class='title'>
<h3>UPCOMING SONGS</h3>
</div>
<div class='devider'>
</div>
<div class='col-md-1'></div>
<div class='col-md-10'>
<div id='carousel_thumb' class='owl-carousel owl-theme'>
<img src='images/slideshow_small_imgs/bob_marley.jpg' alt='bob_marley_photo'>
<img src='images/slideshow_small_imgs/coldplay.jpg' alt='coldplay_photo'>
<img src='images/slideshow_small_imgs/music_covers.jpg' alt='random_covers'>
<img src='images/slideshow_small_imgs/the_neverclaim.jpg' alt='the_neverclaim_photo'>
<img src='images/slideshow_small_imgs/twenty_one_pilots.jpg' alt='twenty_one_pilots_photo'>
</div>
</div>
<div class='col-md-1'></div>
</div>
</div>
</div>
<!-- END OF SMALL SLIDER CONTAINER -->
<!-- SMALL SLIDER STARTS HERE -->
</section>