我在产品网站中使用会话。我的问题是如何发送单一产品数据表网站的网址。
在产品数据表网站中,当我点击索引网站中的产品图片时,我会填写会话:
<?php session_start(); include "connection.php";
$sql = mysql_query("SELECT * FROM products WHERE img = '".$_COOKIE['image_src']."'");
while ($f = mysql_fetch_array($sql))
{
$_SESSION['fid'] = $f['id']; //product id
$_SESSION['fimg'] = $f['image']; //product image
$_SESSION['fname'] = $f['name']; //product name
$_SESSION['fdecription'] = $f['decription']; //product description
$_SESSION['fcategory'] = $f['category']; //product category
}
?>
比我写出会话(产品信息)的同一网站:
e.g:
<?php session_start(); print ($_SESSION[fname]);
echo "<img src='".$_SESSION['fimg']."' height='350' width='250'>";?>
但是这种方式总是最后点击的产品信息将在会话中。 而且我无法同时打开多个产品的数据表。
答案 0 :(得分:3)
您只需要为会话数组创建另一个“级别”:
<?php
session_start();
include "connection.php";
$sql = mysql_query("SELECT * FROM products WHERE img = '".$_COOKIE['image_src']."'");
# Create a counter variable
$counter = 0;
while ($f = mysql_fetch_array($sql))
{
$_SESSION[$counter]['fid'] = $f['id']; //product id
$_SESSION[$counter]['fimg'] = $f['image']; //product image
$_SESSION[$counter]['fname'] = $f['name']; //product name
$_SESSION[$counter]['fdecription'] = $f['decription']; //product description
$_SESSION[$counter]['fcategory'] = $f['category']; //product category
# Increment the counter
$counter++;
}
?>
然后在要查看图像的页面上,只需循环该数组:
<?php
for( $i=0; $i<count($_SESSION); $i++ )
{
...
echo '<img src="'.$_SESSION[$i]["fimg"].'">';
...
}
?>
答案 1 :(得分:0)
我解决了这个问题:
首先,我必须以这种方式调用页面:index.php?image_src=XY
然后我需要$_GET
使用$_COOKIE
。
最后,通过这种方式,会话是不必要的。
<?php include "connection.php";
$sql = mysql_query("SELECT * FROM products WHERE img = '".$_GET['image_src']."'");
while ($f = mysql_fetch_array($sql))
{
$fid = $f['id']; //product id
$fimg = $f['image']; //product image
$fname = $f['name']; //product name
$fdecription = $f['decription']; //product description
$fcategory = $f['category']; //product category
}
?>
我可以写出数据:
<?php echo "<img src='".$fimg."' height='350' width='250'>";
echo "$fdecription";
?>