【发布时间】:2018-10-20 06:48:51
【问题描述】:
我有 <table> 显示数据。我有一个按钮,如果我点击,数据将显示在#datacontainer。但问题是“错误:需要参数 1”我不知道这是什么意思。请帮我解决这个问题
这是我的代码
HTML - 这是表格,假设我的表格中有 4 个数据,然后当我单击按钮时,#datacontainer 将与数据一起显示。
<table>
<tr>
<th width="15%;">Image</th>
<th width="0">ID</th>
<th width="50%;">Name</th>
<th>Action</th>
</tr>
<?php while ($row = mysqli_fetch_array($accounts)) { ?>
<tr>
<td><img src="images/<?php echo $row['image']; ?>"></td>
<td><input type="hidden" id="text_id" value="<?php echo $row['id']; ?>"></td>
<td><?php echo $row['lastname']; ?>, <?php echo $row['firstname']; ?></td>
<td>
<i class="fab fa-reddit-alien" id="showdatacontainer" onclick="return chk()"></i>
<i class="far fa-edit" style="margin: 0 7% 0 7%;"></i>
<i class="fas fa-trash"></i>
</td>
</tr>
<?php } ?>
</table>
<div id="datacontainer"></div>
这是我的脚本
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
function chk()
{
var id = document.getElementById('text_id').value;
var dataString = ':id='+ id;
$.ajax({
type: "post",
url: "showdata.php",
data:dataString,
cache:false,
success: function(data){
$("#datacontainer").html(data);
$("#datacontainer").slideToggle(300);
}
});
return false;
}
这是我单击按钮时所说的 PHP。错误显示"Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result"请帮我解决这个问题。我真的不知道这是什么问题。谢谢你
<?php
$db = mysqli_connect('localhost', 'root', '', 'psbr');
if (isset($_POST['id'])) {
$id = $_POST['id'];
$accountsdata = mysqli_query($db, "SELECT * FROM accounts where id=:id");
$statement = $db->prepare($accountsdata);
$statement->bindParam(":id", $id);
$statement->execute();
$data = $statement->fetchAll(PDO::FETCH_ARRAY);
}
?>
<table>
<tr>
<td class="w"><h1>Name</h1></td>
</tr>
<?php while ($row = mysqli_fetch_array($data)) { ?>
<tr>
<td><?php echo $val['lastname']; ?></td>
</tr>
<?php } ?>
</table>
【问题讨论】:
-
您似乎在混合使用 PDO 和 MySQLi。只使用一个,而不是两个
-
我该怎么办? @菲尔
-
只使用一个,而不是两个
-
另外,
':id='+ id不是有效的application/x-www-form-urlencoded字符串。尝试只使用一个对象,例如data: {id: id} -
另外,你不想使用
mysqli_query,因为你的 SQL 有参数。尽管如此,MySQLi 不支持命名参数,只支持位置参数。您的代码中确实存在很多问题,因此我建议您从一些简单的教程开始。试试这个~phpdelusions.net/pdo