Php 在会话中保存数据库行Id以供以后使用
我试图在php会话中保存行Php 在会话中保存数据库行Id以供以后使用,php,mysql,session,Php,Mysql,Session,我试图在php会话中保存行$row['Id'],以便在下一页使用此变量动态填充$product\u Id变量 到目前为止,我得到的是: <?php $sql = "SELECT * FROM assortiment WHERE Categorie = '$productid' ORDER BY Id DESC "; $result = $conn->query($sql); if ($result->num_rows > 0) { // output data
$row['Id']
,以便在下一页使用此变量动态填充$product\u Id
变量
到目前为止,我得到的是:
<?php $sql = "SELECT * FROM assortiment WHERE Categorie = '$productid' ORDER BY Id DESC ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
SESSION_START();
$identi = $row['Id'];
$_SESSION["product_id"] = $identi;
echo "<a href='/dbtest/dinner/amsterdam/".$row["Slug"]. "/" . $row["Id"] . "'><div class='products'><div class='col-sm-3'><div class='product-img'>";
echo "<img src='http://www.example.nl/Uploaded_files/Thumbs/" .$row['Fotomateriaal']. ".jpg'>";
echo "</div></div><div class='col-sm-6'>";
echo "<div class='h2-container'><h2>" . $row["Product"]. "</h2></div>" . $row["Samenvatting"]. "" . $_SESSION["product_id"] . "";
echo "</div><div class='col-sm-3'><div class='col-sm-12 text-right'>
<div class='border'>
<p style='margin-bottom:20px;width:30px;'><i class='fa fa-heart' aria-hidden='true'></i></p>
</div>
</div>";
echo "<table>
<tr>
<td><i class='fa fa-users' aria-hidden='true'></i></td>
<td><p>vanaf 10 personen</p></td>
</tr>
<tr>
<td><i class='fa fa-clock-o' aria-hidden='true'></i></td>
<td>" . $row["Tijdsduur"] . " uur</td>
</tr>
<tr>
<td><i class='fa fa-euro' aria-hidden='true'></i></td>
<td>vanaf " . $row["VerkoopPP40"] ." p.p. <small>excl btw</small></td>
</tr>
</table></div></div></a>";
}
} else {
echo "0 results";
}?>
我认为它没有被存储,或者(可能)我做错了?我在数据库查询的另一部分中发现启动会话的堆栈溢出:
<?php
$sql = "SELECT * FROM assortiment WHERE Subcategorie = '$product_id'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$fotos = $row["Fotomateriaal"];
$productnaam = $row["Product"];
$contenttext = $row["WebTekst"];
$tijdsduur = $row["Tijdsduur"];
$prijs = $row["VerkoopPP40"];
$sub = $row["Subcategorie"];
$cate = $row["Categorie"];
$seo = $row["SEO_Pagetitle"];
$youtube = $row["Actief_Avontuur"];
$_SESSION["product_id"] = $row["Id"];
}
} else {
$value = "Geen resultaten";
} ?>
实际上您编写了会话_start()代码>以错误的方式(SESSION_START();
)和错误的位置(在while()内)
)
在每个php页面上添加session_start()刚刚启动会话_start()后,在每页顶部的code>开始Holly后,在每个php页面的顶部添加code>。。。好吧,我现在就躺在耻辱的角落里。这就成功了!为什么我没看到这个。。。谢谢您需要在每个页面顶部调用session\u start()
,该页面应该能够访问$\u session
(因此,至少是您正在向$\u SESSION
添加值的页面,以及您希望从中读取值的页面。@Steggie不管羞耻。我们从中学习mistakes@Steggie我添加了它作为答案。你可以接受它也许我应该提出一个新问题,但是,你可能知道为什么它只存储最后一个项目Id而不是所有的项目吗分开?@Steggie,因为您在while循环中一次又一次地重写会话变量。因此,将其替换为:-$\u session[“product\u id”]=$identi;
write$\u session[“product\u id”][=$identi;
我执行了以下操作:$identi=$row['id'];$\u session[“product\u id”]=array();$\u session[“product\u id”]=$identi;var_dump($_SESSION['product_id']);
var_dump给了我这个array(1){[0]=>string(5)“12611”}
但是会话只存储单词array
没有更多…@Steggie用那么多的代码问另一个问题。(这里没有完整的代码)Hesr不可能看到并说出答案请看这个,谢谢:
<?php
$sql = "SELECT * FROM assortiment WHERE Subcategorie = '$product_id'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
while($row = mysqli_fetch_assoc($result)) {
$fotos = $row["Fotomateriaal"];
$productnaam = $row["Product"];
$contenttext = $row["WebTekst"];
$tijdsduur = $row["Tijdsduur"];
$prijs = $row["VerkoopPP40"];
$sub = $row["Subcategorie"];
$cate = $row["Categorie"];
$seo = $row["SEO_Pagetitle"];
$youtube = $row["Actief_Avontuur"];
$_SESSION["product_id"] = $row["Id"];
}
} else {
$value = "Geen resultaten";
} ?>