将SQL查询与jquery变量一起使用

时间:2019-04-15 15:19:42

标签: javascript php jquery sql

所以我试图为我的网站做一个历史记录,但是当我使用jquery变量进行查询选择时,它不起作用。 HERE是显示db值的表,here是一个弹出框,用于显示详细信息,但我想显示单击的每一行的值

这是jquery代码:

var idocorrencia;
$(document).on("click","#listagem tr td a", function(e){
e.preventDefault();
idocorrencia = $(this).parent().attr("idlista");
$("#listagem caption").text($(this).text());
console.log(idocorrencia);
alert(idocorrencia);
$.post( "historico.php", { idoc: idocorrencia })

   $.ajax({
   method:"POST",
   url:"historico.php",
   data:{idoc : "idlista"},
   dataType: 'json',
       });
   });      

这是php:

$id = $_POST['idoc'];
$result = mysqli_query($conn, "SELECT id FROM ocorrencia where id=$id");
$row = mysqli_fetch_assoc($result);
$idoc = isset($_POST['idoc']) ? $_POST['idoc'] : $row['id']; 

1 个答案:

答案 0 :(得分:2)

尝试这样做:

if (isset($_POST['idoc'])) {
    $id = $_POST['idoc'];
    $result = mysqli_query($conn, "SELECT id FROM ocorrencia where id='" . mysqli_real_escape_string($conn, $id) . "'");
    if($result!==false && mysqli_num_rows($result)>0){
        $row = mysqli_fetch_assoc($result);
        $idoc = $row['id'];
    }
}

更新

这是带有准备好的语句的相同脚本:

if (isset($_POST['idoc'])) {
    $statement = mysqli_prepare($conn, "SELECT id FROM ocorrencia where id=?");
    mysqli_stmt_bind_param($statement, 's', $id);
    $id = $_POST['idoc'];
    mysqli_stmt_execute($statement);
    $result = mysqli_stmt_get_result($statement);
    if ($result !== false && mysqli_num_rows($result) > 0) {
        $row = mysqli_fetch_assoc($result);
        $idoc = $row['id'];
    }
}

在这里,我使用了过程样式,因为原始脚本就是这样。但是可以轻松地以面向对象的样式来重写它。