使用HTML属性作为MySQL变量

时间:2015-01-23 09:36:20

标签: html mysql

我很好奇您是否可以将HTML属性用作SQL查询变量。

例如:

<div class="btn" id="foo" bar="baz">
    <? 
        $bar = **something goes here**;
        $sql = "SELECT * FROM foo WHERE bar = '$bar' ORDER BY barname ASC";
        $result = mysql_query($sql);
    ?>
</div>

因此$bar将等于bar标记的<div>属性的值。这可能吗?任何意见都表示赞赏!

2 个答案:

答案 0 :(得分:0)

此?

<?
$bar = '**something goes here**';
?>
<div class="btn" id="foo" bar="<?=$bar?>">
    <? 
        $sql = "SELECT * FROM foo WHERE bar = '$bar' ORDER BY barname ASC";
        $result = mysql_query($sql);
    ?>
</div>

答案 1 :(得分:0)

可以使用缓冲来捕获PHP程序运行时的输出,解析从中获取的部分HTML文档,然后从中提取属性值......但这会非常复杂。

这种方式就是疯狂。跳到下一部分,了解问题的理解方法。

<?php
ob_start();
?>
<!DOCTYPE HTML>
<meta charset="utf-8">
<title>Experiments in output buffering</title>
<div class="btn" id="foo" bar="baz">

<?php
$doc = ob_get_contents();
$dom = new domDocument;
$dom->loadHTML($doc);
$div = $dom->getElementById('foo');
$bar = $div->attributes->getNamedItem('bar')->value;
echo "The value of \$bar is $bar";
?>

</div>

如果要在多个位置使用一段数据,请将其存储在变量(或常量)中,然后在多个位置使用它。

<?php
    $bar = get_user_preference();
?>
<div class="btn" id="foo" bar="<?php echo htmlspecialchars($bar); ?>">
<?php
    $stmt = $db->prepare('SELECT * FROM foo WHERE bar = ? ORDER BY barname ASC');
    $stmt->bind_param('s',$bar);
    $stmt->execute();
?>
</div>