我正在做一个简单的php购物车。基本上是出于学习目的,我正在尝试为我的问题搜索解决方案。但是,我不确定我的问题的关键字是什么。因此,我在这里发布。
echo "<p>Product A | <a href='product.php?id=a'>Add to Cart</a></p>";
echo "<p>Product B | <a href='product.php?id=b'>Add to Cart</a></p>";
echo "<p>Product C | <a href='product.php?id=c'>Add to Cart</a></p>";
基本上,每个产品都共享相同的目标网页 - &gt; product.php就像普通的购物车一样。因此,当用户点击产品A“添加到购物车”时,它将登陆produt.php?id = a,如果是产品B,那么将是produt.php?id = b。我的问题是如何像我提到的那样制作网址?
请参阅截图。
答案 0 :(得分:2)
由于id
参数位于网址中,因此称为GET
参数。您可以使用全局变量$_GET
访问GET参数。
在product.php
中你应该有:
if(isset($_GET['id'])){
$id = $_GET['id'];
if($id=='a'){
// do something
}
else if($id=='b'){
// do something else
}
}
答案 1 :(得分:2)
尝试以下方法:
// Show all products
$q = mysqli_query( $con, "SELECT `id` FROM `products`" );
if( mysqli_num_rows( $q ) > 0 ) { // Check if there are results
while( $row = mysqli_fetch_assoc( $q ) ) {
echo '<p>Product A | <a href="product.php?id='.$row['id'].'">Add to Cart</a></p>';
}
}
在product.php
function productExists( $id ) {
if( !empty( $id ) ) {
$q = mysqli_query( $con, "SELECT `id` FROM `products` WHERE `id` = $id");
if( mysqli_num_rows( $q ) > 0 ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
function productData( $id ) {
if( !empty( $id ) ) {
$q = mysqli_query( $con, "SELECT `id`, `product_name`, `product_price`, `product_quantity`, `product_image` FROM `products` WHERE `id` = $id");
if( mysqli_num_rows( $q ) > 0 ) {
$data = array(); // Store data
while( $row = mysqli_fetch_assoc( $q ) ) {
$data[] = $row;
}
if( !empty( $data ) ) { // Make sure all data is gathered before proceeding
return $data;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
if( !empty( $_GET['id'] ) ) { // empty does the same as isset() but also checks if the value is not empty
$id = (int)mysqli_real_escape_string( $con, $_GET['id'] );
if( productExists( $id ) ) {
$data = productData( $id );
echo 'Product: '.$data['product_name']; // Etc.
} else {
echo 'Product doesn\'t exists';
}
}
调整部分代码时,您还可以获得其他列
答案 2 :(得分:1)
if(isset($_GET['id'])){
if(is_numeric($_GET['id']))
{
$id = $_GET['id'];
if($id=='a')
{
}
else if($id=='b')
{
// do something else
}else
{
echo "product does not exists";
}
}
else{
echo "product does not exists";
}
}else
{
echo "product does not exists";
}