2013-11-27 4 views
0

PHP로 루프하는 동안 mysql의 제품 카탈로그를 채 웁니다. 제품 정보를 다른 페이지에 표시 할 때 클릭하도록 노력하고 있습니다. 지금까지는 세션을 사용하려고했지만 클릭 한 항목에 관계없이 항상 마지막 제품을 보냅니다. 도움이 필요해 !!클릭하면 링크가 표시되고 다른 페이지에 제품이 표시됩니다

카탈로그. 내가 다른 페이지

echo "<div class='productcontainer'>", 
"<div class='productpageimage'>", 
"<img src='{$_SESSION['image']}' alt='{$_SESSION['name']}' />", 
"</div>", 
"<div class='productpagename'>", 
$_SESSION['name'], 
"</div>", 
"<div class='productpagebrand'>", 
$_SESSION['brand'], 
"</div>", 
"<div class='productpagecode'>", 
$_SESSION['code'], 
"</div>", 
"</div>"; 
?> 

누군가가 도와 드릴까요에 표시 할 위치

while($row = mysqli_fetch_array($sql)){ 
$data = $row['image']; 
$file = substr($data, strpos($data, "/") + 1); 
echo "<a href='products.php'>", 
"<div class='productdiv'>", 
"<div class='productimage'>", 
"<img class='resizedimage' src='$file' alt='{$row['name']} Image' />", 
"</div>", 
"<div class='productname'>{$row['name']}</div>", 
"<div class='brand'>Brand -> {$row['brand']}</div>", 
"<div class='brand'>Code ->{$row['code']}</div>", 
"<div class='productprice'>&pound{$row['price']}</div>", 
"</div>", 
"</a>"; 
$_SESSION['name']=$row['name']; 
$_SESSION['brand']=$row['brand']; 
$_SESSION['code']=$row['code']; 
$_SESSION['image']=$file; 
} 

는 그리고이 무엇입니까?

답변

0

배열을 반복 할 때마다 $_SESSION 값을 설정하므로 마지막 반복 값만 "유지"됩니다. 그런 식으로 세션 값을 설정하려면 제품 레코드의 식별자를 전달한 다음 나중에 $_SESSION 값을 설정해야합니다 (예 : products.php 페이지). 이 작업을 수행하는 다른 방법의 제비가있다 - 당신이 만든 링크로 정보를 인코딩 할 수 있습니다 :

echo "<a href='products.php?name=" . $row['name'] . "&brand=" . $row['brand'] . "&code=" . $row['code'] . "&'>" 

는 그 다음 products.php 페이지에 $ _GET의 값을 사용하여 $ _SESSION 설정을 :

$_SESSION['name'] = $_GET['name']; 
// ... etc. 

또는 더 일반적으로 식별자 만 전달한 다음 (제품 ID가 있습니까?) products.php에서 다른 sql 조회를 수행하십시오.

+0

제품 ID는 어떻게 전달합니까? – GlenR

+0

제품 테이블에 제품 ID가 있습니까? (어떤 필드가 '제품'레코드를 구성합니까?) 당신이 찾고있는 것은 제품을 고유하게 식별하는 필드입니다. ('이름'필드는 고유합니까?) 사용중인 테이블 스키마와 쿼리를 게시 할 수 있다면 도움이됩니다. –

+0

다른 페이지에서 hello를 전달한 다음 www.something.com/?anything=hello를 사용하고 다른 페이지에서 $ _GET [ 'anything']을 사용하여 URL에서 값을 가져와야한다고 가정합니다. –

관련 문제