我正在创建我的网站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">← Home</a>
</div>
<?php include_once('footer.php'); ?>
</body>
</html>
<?php
} else {
header('location: index.php');
exit();
}
?>
有人可以告诉我为什么list.php页面无法正常工作吗?谢谢。
kevstarlive
答案 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
循环显示所有链接。
此外,做大卫推荐的所有事情,它将使您的代码更容易工作=)