php - 如何在单击时执行 mysql 请求?

标签 php mysql sql html

<?php
        require 'connect.inc.php';
        $query = "SELECT `item`, `up`, `down` FROM mytable ORDER BY RAND() LIMIT 1";
        $query_run = mysql_query($query);

        if ($query_run = mysql_query($query)) {

            while ($query_row = mysql_fetch_assoc($query_run)) {
                $item = $query_row['item'];
                $up = $query_row['up'];
                $down = $query_row['down'];
    ?>  
    <div id="one">
        <div id="votes">
            <?php
                echo "$up votes";
            ?>
        </div>
    </div>
    <div id="or">
        <div id="item">
            <?php echo $item ?>
        </div>
    </div>
    <div id="two">
        <div id="votes">
            <?php
                echo "$down votes";
            ?>
        </div>
    </div>
    <?php       }

        } else {
            echo mysql_error();
        }
        ?>

这是我的代码。我需要做到这一点,以便当用户单击 div id="one"或 id="two"时执行此 sql 查询(如果单击了 div 一个(两个相同))

UPDATE mytable SET up=$up+1 WHERE id="1(can be any id)"

另外,我可以在 sql 查询中进行数学运算吗?

谢谢

最佳答案

好的,所以这由 3 个部分组成:

1.html。 2.JS/ Ajax 。 3.php.

1.) HTML。

<div data-action="up" class="clicker" id="<?php echo $item; ?>">
    <div id="votes">
        <?php
            echo "$up votes";
        ?>
    </div>
</div>
<div id="or">
    <div id="item">
        <?php echo $item ?>
    </div>
</div>
<div data-action="down" class="clicker" id="<?php echo $item; ?>">
    <div id="votes">
        <?php
            echo "$down votes";
        ?>
    </div>
</div>

2.) JS/Ajax。

 <script type='text/javascript' >
$('.clicker').click(function (){ 
    doAjaxCall($(this).attr('id'), $(this).attr('data-action'));
});

function doAjaxCall(varID, vote){
    var pageUrl = document.URL;
    ar post = '{"ajax":"yes", "varID":' + varID + ', "vote":' + vote + '}';// Incase you want to pass dynamic ID
    $.post(pageUrl,post,function(data){
        var response = $.parseJSON( data )
        if(response.success){
            //do whatever you like.
            alert('baaaam');
        }
    }); 
}
</script>

3.) php.

if($_POST['ajax'] == 'yes'){
    $field = $_POST['vote'];
    $query = "UPDATE mytable SET `$field` = `$field` +1 WHERE id=".$_POST['var_id'];
    $query_run = mysql_query($query);
    $return = array();
    $return['success'] = false;
    if($query_run){
       $return['success'] = true;
    }
    echo json_encode($return);
    die()
}

更新整个页面

if($_POST['ajax'] == 'yes'){
    $field = $_POST['vote'];
    $query = "UPDATE mytable SET `$field` = `$field` +1 WHERE id=".$_POST['var_id'];
    $query_run = mysql_query($query);
    $return = array();
    $return['success'] = false;
    if($query_run){
       $return['success'] = true;
    }
    echo json_encode($return);
    die()
}


$query = "SELECT `item`, `up`, `down` FROM mytable ORDER BY RAND() LIMIT 1";
$query_run = mysql_query($query);

if ($query_run = mysql_query($query)) {

while ($query_row = mysql_fetch_assoc($query_run)) {
$item = $query_row['item'];
$up = $query_row['up'];
$down = $query_row['down'];

?>
<div data-action="up" class="clicker" id="<?php echo $item; ?>">
    <div id="votes">
        <?php
            echo "$up votes";
        ?>
    </div>
</div>
<div id="or">
    <div id="item">
        <?php echo $item ?>
    </div>
</div>
<div data-action="down" class="clicker" id="<?php echo $item; ?>">
    <div id="votes">
        <?php
            echo "$down votes";
        ?>
    </div>
</div>

<script type='text/javascript' >
$('.clicker').click(function (){ 
    doAjaxCall($(this).attr('id'), $(this).attr('data-action'));
});

function doAjaxCall(varID, vote){
    var pageUrl = document.URL;
    var post = '{"ajax":"yes", "varID":' + varID + ', "vote":' + vote + '}';// Incase you want to pass dynamic ID
    $.post(pageUrl,post,function(data){
        var response = $.parseJSON( data )
        if(response.success){
            //do whatever you like.
            alert('baaaam');
        }
    }); 
}
</script>
<?php       }

    } else {
        echo mysql_error();
    }
    ?>

基本上这就是全部。如果您愿意,我也可以为您拼装。

关于php - 如何在单击时执行 mysql 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16930142/

相关文章:

php - 防止重复无限滚动ajax加载器

javascript - imagecopyresampled 返回 null

php - PHP中的日期算术

使用for循环的递增日期的php代码在更新条件下不起作用

MySQL 将性别作为 bool 值存储在表中时将其提取为字符串

MySQL - 更新连接自然顺序

MYSQL - 'SELECT' 和 'AS 只能创建一个列..如何让它们更多?

php - Symfony2 Profiler 数据库面板中的空结果

sql - 过滤 SQL 行

javascript - 使用 JavaScript 为 SQL 清理数据