Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示数据库问题中的数据_Php_Sql - Fatal编程技术网

Php 显示数据库问题中的数据

Php 显示数据库问题中的数据,php,sql,Php,Sql,我试图显示特定用户数据中的所有行,但它只显示一行,不更新。 代码是- $user = $_SESSION["username"]; $sql = "SELECT * FROM transactions WHERE sender OR receiver = ?"; if ($sql = $conn->prepare($sql)) { $sql->bind_param("s",$user); if ($sql->execute()) { $resul

我试图显示特定用户数据中的所有行,但它只显示一行,不更新。 代码是-

$user = $_SESSION["username"];
$sql = "SELECT * FROM transactions WHERE sender OR receiver = ?";
if ($sql = $conn->prepare($sql)) {
    $sql->bind_param("s",$user);
    if ($sql->execute()) {
        $result = $sql->get_result();
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                 echo "<br> sender: ". $row["sender"]. " - receiver: ". $row["receiver"]. " -amount:" . $row["amount"] . "<br>";
                }
            }
            $sql->close();
            $conn->close();
        }else{ echo "0 result"; }
    }


?>
$user=$\u会话[“用户名”];
$sql=“从发送方或接收方=?”的事务中选择*;
如果($sql=$conn->prepare($sql)){
$sql->bind_参数(“s”,$user);
如果($sql->execute()){
$result=$sql->get_result();
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
回显“
发送方:“.$row[“发送方”]。”-接收方:“.$row[“接收方”]。”-金额:“.$row[“金额”。”
”; } } $sql->close(); $conn->close(); }else{echo“0结果”;} } ?>
您使用了错误的SQL格式&只传递接收方值。我建议作出以下修改:

取代

1)
WHERE sender或receiver=?
with
WHERE sender=?或接收器=?

2)
$sql->bind_参数(“s”,$user)
$sql->bind_参数(“ss”,$user,$user)

$user=$\u会话[“用户名”];
$sql=“从发送方=?或接收方=?”的事务中选择*;
如果($sql=$conn->prepare($sql)){
$sql->bind_参数(“ss”,$user,$user);
如果($sql->execute()){
$result=$sql->get_result();
如果($result->num_rows>0){
而($row=$result->fetch_assoc()){
回显“
发送方:“.$row[“发送方”]。”-接收方:“.$row[“接收方”]。”-金额:“.$row[“金额”。”
”; } } $sql->close(); $conn->close(); }else{echo“0结果”;} }
您的数据库中有多少行?每个事务都是一个新行,因此行数始终在变化我建议首先在数据库中启动select查询,并输入值来代替?查看它返回多少行。
发送方或接收方=?
在SQL中不是正确的语法。您必须执行
sender=?或receiver=?
并绑定两个参数。执行或不执行。没有“尝试”。一个好的答案总是会有一个解释,说明做了什么,以及为什么这样做,不仅是为了OP,而且是为了SO的未来访客。你改变了什么?你能解释一下这个解决方案吗?我通过编辑我的答案来解释。检查答案。
$user = $_SESSION["username"];
$sql = "SELECT * FROM transactions WHERE sender=? OR receiver = ?";
if ($sql = $conn->prepare($sql)) {
    $sql->bind_param("ss",$user,$user);
    if ($sql->execute()) {
        $result = $sql->get_result();
        if ($result->num_rows > 0) {
            while ($row = $result->fetch_assoc()) {
                 echo "<br> sender: ". $row["sender"]. " - receiver: ". $row["receiver"]. " -amount:" . $row["amount"] . "<br>";
                }
            }
            $sql->close();
            $conn->close();
        }else{ echo "0 result"; }
    }