【问题标题】:Passing Database Field ID's Run SQL Depending on the Fields Value根据字段值传递数据库字段 ID 的运行 SQL
【发布时间】:2013-03-15 15:29:08
【问题描述】:

我正在尝试构建一个 CMS,我可以在其中单击星形图标,它将更改我数据库中的 art_featured 值,因此假设 art_featured 值为 0,然后单击要更改的星形图标该字段的值从 0 到 1。我有点让它工作,但我不知道如何传递 art_featured 值,通常我只会在我的 span 上使用 id 但我已经使用它,我可以知道我需要更改哪篇文章,那么如何将art_featured 的值传递给我的SQL 语句,以便我可以运行 if 和 else 语句,然后运行某个 SQL 语句,具体取决于art_featured的值,

提前感谢您的帮助!

表格

art_id  art_title  art_company    art_featured
1       lorem 1    lorem ipsum 1  1
2       lorem 2    lorem ipsum 2  0

HTML/PHP

<section class="row">
    <?php
    $sql_categories = "SELECT art_title, art_company, art_id, art_featured FROM app_articles"; 

        if($result = query($sql_categories)){
            $list = array();

            while($data = mysqli_fetch_assoc($result)){
                array_push($list, $data);
            }

            foreach($list as $i => $row){ 
            ?>
                <div class="row">
                    <div class="column two"><p><?php echo $row['art_title']; ?></p></div>
                    <div class="column two"><p><?php echo $row['art_company']; ?></p></div>
                    <div class="column one"><span id="<?php echo $row['art_id']; ?>" class="icon-small star"></span></div>
                </div>
            <?php
            }
        }
        else {
            echo "FAIL";
        }
    ?>
    </section>

jQuery

        $(".star").click(function(){

        var art_id = $(this).attr('id');

        $.ajax({
        type: "POST",
        data: {art_id:art_id},
        url: "ajax-feature.php",
        success: function(data){
            if(data != false) {

            } 
            else {

            }  
        }
        });

    });

mySQL/PHP

    if(isset($_POST['art_id'])) {



    $sql_articles = "UPDATE `app_articles` SET `art_featured` = 1 WHERE `art_id` =".$_POST['art_id'];

    if(query($sql_articles)) {
        echo "YES";
    }
    else {
        echo "NO";
    }
}
else {
    echo "FAIL";
}

【问题讨论】:

    标签: php jquery mysql ajax database


    【解决方案1】:
    $sql_detail = "SELECT * FROM app_articles
    WHERE art_id = " . $_POST['art_id'];
    $sql_result = mysql_query($sql_detail);
    if(mysql_num_rows($sql_result) > 0) { // the art_id supplied exists
    
        while($sR = mysql_fetch_array($sql_result)) {
    
            $art_title = $sR['art_title'];
            $art_company = $sR['art_company'];
            $art_featured = $sR['art_featured];
    
            // Do whatever you want with these variables
    
        }
    
    } else { // the art_id supplied does not exist
    
    } 
    

    将 $_POST['art_id'] 直接传递到 SQL 语句是不安全的,因此您可能应该阅读数据清理。但这应该可以。

    【讨论】:

    • 抱歉我已经有了 $(document).ready(function{ });我忘了包括那个。我需要知道的是如何将 php 变量从我的 sql 结果传递给我正在更新数据库的 sql 语句。
    猜你喜欢
    • 1970-01-01
    • 2017-01-06
    • 2021-11-01
    • 2023-02-22
    • 2022-10-05
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多