私はPHPでセッションを使用しています。両方のページの一番上に、私はsession_start()を実行します。何よりも前にPHPセッションを使用してあるページから別のページにデータを渡す
その後、情報をページに読み込むために使用されるデータベースから情報が引き出されます。今は20種類のアイテムしか使っていません。最初のページがデータベースを反復して、私が期待する出力が得られます。イメージを選択すると、そのオブジェクトに関する詳細情報が必要な別のページに移動します。問題は、新しいページには常にデータベース内の最後のオブジェクトが表示されることです。私は関連するコードを掲示し、誰かが私の失敗を指摘できることを願っています。
<?php
//initial page with list of objects
session_start();
$_SESSION['listingID'] = $listingID;
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Some Title</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="main.css" />
</head>
<body>
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header">
<h1><a href="#" target="__blank">Some H1 that works fine</h1>
<nav>
<ul>
<li><a href="#" target="__blank">Some link</a></li>
</ul>
</nav>
</header>
</div>
</body>
</html>
<?php
try {
$dbh = new PDO("mysql:host=$dbservername;dbname=$dbname", $dbusername, $dbpassword);
//echo "Connection is successful!<br/>";
$sql = "SELECT * FROM $tablename";
$users = $dbh->query($sql);
foreach ($users as $row) {
extract($row);
$_SESSION['listingID'] = $listingID;
echo "THIS IS listingID ". $listingID;
echo '<div id="main" style="margin-bottom: 2em;">';
echo '<article class="thumb">';
echo '<a href="lake_full.php?'.$listingID.'" class="image"><img style="width:100%;height:100%;" src="' . $image . '" /></a>';
echo "<h2>$address</br>$city, $state $zip</br>$$asking_price</h2>";
echo '</article>';
echo '</div>';
} // end foreach
$dbh = null;
}
catch (PDOexception $e) {
echo "Error is: " . $e-> etmessage();
}
?>
次のコードは、最初のページで選択した画像に関連付けられた「id」や何かを引き継ぐ新しいページで使用しているコードです。
<?php
//lake_full.php
session_start();
$listingID = $_SESSION['listingID'];
echo "ID IS ".$listingID;
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Some Title</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="main.css" />
</head>
<body>
<!-- Wrapper -->
<div id="wrapper">
<!-- Header -->
<header id="header">
<h1><a href="#">Some H1</h1>
<nav>
<ul>
<li><a href="#" target="__blank" class="icon fa-info-circle">Some Link</a></li>
</ul>
</nav>
</header>
</body>
</html>
<?php
try {
$dbh = new PDO("mysql:host=$dbservername;dbname=$dbname", $dbusername, $dbpassword);
//echo "Connection is successful!<br/>";
$sql = "SELECT listingID FROM $tablename";
$users = $dbh->query($sql);
echo "THIS ID IS ". $mls;
echo '<div id="main" style="margin-top: 2em;">';
echo '<article class="thumb">';
echo '<a href="#" class="image"><img style="width:100%;height:100%;" src="' . $image . '" /></a>';
echo "<h2>$address</br>$city, $state $zip</br>$$asking_price</h2>";
echo '</article>';
echo '</div>';
$dbh = null;
}
catch (PDOexception $e) {
echo "Error is: " . $e-> etmessage();
}
?>
最初のページでは、セッションを '$ listingID'で設定しています。その変数はどこから来たのですか?そして、あなたのすべてのデータベース変数はどこから来ますか?また、あなたのtry-blockの '$ listingID'でセッションを再設定しますか? –
mysqlの内容をすべて削除して、コードが乱雑にならないようにしました。 私は選択した家のIDなどをエコーすることができますが、それを選択すると、新しいページにはデータベースの最後の項目だけが反映されます。どの家が選ばれたのかを覚えさせようとしているので、次のページにすべての情報を表示することができます。 – TomG103
* "新しいページ" *に '<?php'の前に空白文字がありますか?私は '$ listingID'を使っているところも見ません – Phil