href到数据库字段链接。

时间:2013-07-20 17:09:19

标签: php mysql content-management-system href

我正在创建我的网站FOUND HERE

(此页面是点击我首页found here底部免费标签的结果)

正如您在此页面上看到的那样,数据库中存储了2个字段。 GIFFGAFF& O2。它成功地从我的数据库上的mobi表中读取了promo_image,promo_title,promo_content。

但是:当您按下GO按钮时,您可以将此链接链接到此优惠的同一表格中存储在promo_link中的网站。

它没有那样做。但它在新选项卡中加载相同的页面(由于_blank代码)。

此页面的代码是:

<?php

include_once('include/connection.php');
include_once('include/article.php');

$article = new article();


if(isset($_GET['id'])) {
   $id = $_GET['id'];
$data = $article->fetch_data($id);

if ($param){
    echo '<div>' . $data["bla"] . '</div>';
}

$articles = $article->fetch_all();

?>

<html>

<head>
<title>xclo mobi</title>
<link rel="stylesheet" href="other.css" />
</head>

<body>
<?php include_once('header.php'); ?>


<div class="container">
<a href="index.php" id="logo">Category = ???</a>


    <?php foreach ($articles as $article) { 
    if ($article['promo_cat'] === $_GET['id']) { ?>


<div class="border">
<a href="single.php?id=<?php echo $article['promo_title']; ?>" style="text-decoration: none">
<img src="<?php echo $article['promo_image']; ?>" border="0" class="img" align="left"><br />


<a href="<?php echo $data['promo_link']; ?>" target="_blank"><img alt="" title="" src="GO.png" height="50" width="50" align="right" /></a>
<br /><br /><br /><br />
    <?PHP echo '<div class="title">' . $article['promo_title'] . '</div>'; ?>
<br />

<font class="content"><em><center><?php echo $article['promo_content']; ?></center></em></font>

</div><br/><br />

          </a>

 <?php } } } ?>

</div>
<?php include_once('footer.php'); ?>
</body>

</html>

但是:如果您点击其中一个徽标并转到single.php页面并点击该页面上的相同转到按钮就可以了。

我工作的single.php页面的代码是这样的。

<?php

include_once('include/connection.php');
include_once('include/article.php');

$article = new article;

if(isset($_GET['id'])) {
   $id = $_GET['id'];
$data = $article->fetch_data($id);

?>

<html>

<head>
<title>Xclo Mobi</title>
<link rel="stylesheet" href="other.css" />
</head>

<body>
<?php include_once('header.php'); ?>


<div class="container">
<a href="index.php" id="logo">Title Page</a><br /><br />

<div align="center">
<img src="<?php echo $data['promo_image']; ?>" class="img"><br />

<font class="title"><?php echo $data['promo_title']; ?></font>


<p>
<center><?php echo $data['promo_content']; ?></center>


<a href="<?php echo $data['promo_link']; ?>" target="_blank"><img alt="" title="" src="GO.png" height="50" width="50" align="right" /></a>

<br /><br />
<b><u>More From This Brand</b></u>

<br /><br />


<a href="index.php">&larr; Home</a>

</div>
<?php include_once('footer.php'); ?>
</body>

</html>



<?php
} else { 
 header('location: index.php');
 exit();
}

?>

有人可以告诉我为什么list.php页面无法正常工作吗?谢谢。

kevstarlive

2 个答案:

答案 0 :(得分:2)

在非工作示例中,此值不包含任何数据:

$data['promo_link']

因此,链接标记中的href属性没有URL,浏览器默认为当前页面。如何获取这两个页面之间的数据略有不同。在这两种情况下,您都使用从查询字符串传递的id值:

$id = $_GET['id'];
$data = $article->fetch_data($id);

但是,有问题的两个页面在查询字符串上具有不同的值。您在问题中发布的链接是:

http://www.xclo.mobi/xclo2/list.php?id=FREE

从该页面到工作示例的链接是:

http://www.xclo.mobi/xclo2/single.php?id=Free%20Sim%20Card

两个id值非常不同。第二个是在promo_link字段中找到包含数据的记录,第一个不是。

经过仔细检查,看起来可能只是非工作页面中的拼写错误。请注意您如何获取该页面中的记录列表:

$articles = $article->fetch_all();

你在循环中使用它来显示页面上的显示元素:

<img src="<?php echo $article['promo_image']; ?>

但是当你到达链接时,你改为使用$data对象:

href="<?php echo $data['promo_link']; ?>"

也许你的意思是这样的?:

href="<?php echo $article['promo_link']; ?>"

看起来你甚至不应该需要第一页上的$data对象,因为你的意图是遍历记录列表而不是获取单个记录。因此,您可以完全删除$data引用,而不必费心从该页面上的数据库中获取它。

我还建议您更改变量名,以免相互冲突。在循环中声明迭代变量时:

foreach ($articles as $article)

您正在与同名的现有对象发生碰撞:

$article = new article();
$data = $article->fetch_data($id);

我不知道PHP如何处理变量范围内的名称冲突,但如果没有其他原因,只是为了避免混淆,你应该将它们命名为不同的东西。也许是这样的:

foreach ($articles as $articleRecord)

答案 1 :(得分:0)

在您的信息页中使用$article['promo_link']代替$data['promo_link']

您正在使用foreach循环显示所有链接。

此外,做大卫推荐的所有事情,它将使您的代码更容易工作=)