将目标链接发送到数据库,然后将其回显

时间:2015-05-06 22:10:03

标签: php mysql hyperlink path

我有一个产品页面,我通过像这样的while循环输出我的产品......

<?php   
// Loop to display all products
foreach($products as $id => $product) {
?>
    <div class="item">
        <div class="productpiccontainer">
            <?php echo "<img src='productpics/". $row['img'] ."' alt='Product Pic'>"; ?>
        </div>      
        <p><?php echo "<a href='./viewProduct.php?view_product=$id'>" . $product['name'] . "</a>"; ?></p>
        <p> <?php echo "$" . $product['price']; ?> </p>                                     
    </div>
<?php
    }
?>

正如您在代码中看到的那样,我将视图产品页面链接为标准页面,并显示产品ID所点击的产品。现在我想要做的是创建不同的View产品页面,这样我就可以展示不同类型的产品。

我将产品插入数据库的方式是通过我创建的管理页面。我通过这个输入产品ID,名称,类别等,然后将其发送到我的数据库并在产品页面上输出。

现在,我的想法是在我的管理页面中创建一个新的输入字段,该字段是一个包含多个“查看产品”模板的选项字段。我想将我的产品页面上显示的链接发送到我的数据库..

<?php echo "<a href='./viewProduct.php?view_product=$id'>" . $product['name'] . "</a>"; ?>

然后,我可以选择正在创建的每个其他产品,并将其回显到我的产品页面。

所以它会是这样的......

<p><?php echo "$product['option']" . $product['name'] . "</a>"; ?></p>

我遇到的问题是我无法弄清楚如何发送链接..

<a href='./viewProduct.php?view_product=$id'>

进入我的数据库甚至试图回应这个。

我正在尝试发送它是一个字段,就像我在页面中完成所有其他数据一样。

<select class="optionbar" name="viewproduct_type">
    <option name="notSelected">Not Selected</option>
    <option name="viewproduct_type" value="a href='./viewProduct.php?view_product=$id">Standard</option>
    <option name="viewproduct_type" value="Option">Option</option>
</select>

如何获取此链接发送或有更好的选择来执行此操作?我希望尽可能地保持这种自动化,这就是为什么我这样做。

1 个答案:

答案 0 :(得分:0)

您正在尝试将html代码作为另一个html元素中的值,这只是一个问题。如果你真的想把它拉掉,我建议你阅读htmlentities()。 你的第二个问题是你显然没有逃脱你的插入物。阅读mysqli_real_escape_string()

在您的情况下,最简单的方法是将ID传递到选择列表,然后在插入之前将链接与ID结合起来。无需在选择列表值中存储完整链接。

示例代码

<html>
<head>
</head>
<body>

<form name="ASD" method="post" action="mysqli.php">
    <select name="link">
        <option value="1">Option 1</option>
        <option value="2">Option 2</option>
    </select>
    <input type="submit" value="Go" />
</form>

<?php
error_reporting(E_ALL);

$db = mysqli_connect("localhost", "root", "", "test", 3306) OR die ('Could not connect to MySQL: ' . mysql_error());

if (isset($_POST["link"])) {
    $save="./viewProduct.php?view_product=".$_POST["link"];
    $save = mysqli_real_escape_string($db, $save);
    $r = mysqli_query($db, "INSERT INTO links VALUES('".$save."')");

    if ($r === false) echo "Failed ".mysqli_error();
    else echo "Success";
} 

?>

</body>
</html>