error: function fetch_all()

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
guitarzrwe
Forum Newbie
Posts: 2
Joined: Wed Aug 17, 2022 6:05 pm

error: function fetch_all()

Post by guitarzrwe »

Hi, trying to get a reasonable answer to this coding issue.
I'm a noobie with questions. I want to access a database table "payfile" and, based on the sum of
some of these fields, insert records into a database table "payhist". I realize now that I was in error
by trying to update and must insert records, with conditions, to a running history file. A lot of
research has gone into this and I thank so much for your patience and help. I'm lost from line 15-20.

Code: Select all

<?php
        echo "<center>";echo date('m/d/y');echo "<br />";
        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "prerentdb";
        // Create connection
        $mysqli = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($mysqli->connect_errno) {
        echo "Failed to connect to MySQL: " . $mysqli->connect_error;
        exit();
        }

        $amtpaid = filter_input(INPUT_GET, 'amtpaid');  // line 15
        $sql = "SELECT * FROM payfile WHERE amtpaid=?"; // FROM payfile where amtpaid!=' '";

        $stmt = $mysqli->prepare($sql);
        // $stmt->bind_param($id);
        $payfile = $stmt->get_result()->fetch_all(); // line 20
        $due=0;
        while($obj = fetch_object()){
        
        $due = $obj->prevbal + $obj->latechg + $obj->secdep + $obj->damage + $obj->courtcost + $obj->NSF;
        $amtdue = $obj->amtdue + due;
        // if no payment or partial payment, add $10 to latechg field and amount not paid to prevbal field
        $latechg = 0;
        $prevbal = 0;
        if ($obj->amtpaid < $obj->amtdue) {
        $latechg += 10;
        $prevbal = $obj->amtdue - $obj->amtpaid;
        }
        // if over-payment subtract over-payment
        // from prevbal field
        if ($amtpaid > $amtdue ) {
        $amtdue = $amtpaid - $amtdue;
        }
        // $nsf doesn't get used or saved
        $secdep = $damage = $courtcost = $nsf = 0;
        // refresh every record - give every record the below values
        $amtpaid = '0.00';
        $hudpay = '0.00';
        $datepaid = ' ';
        $comment = ' ';
        $paidsum = '0.00';

        // prepare and bind
$stmt = $mysqli -> prepare("INSERT INTO payhist 
(tenant, unit, amtpaid, amtdue, prevbal,latechg, secdep, damage, courtcost, nsf, paidsum, hudpay, 
datepaid, comment, phone, cell)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt -> bind_param("ssiiiiiiiiiissss",'$tenant','$unit','$amtpaid','$amtdue','$prevbal','$latechg',
'$secdep','$damage','$courtcost', '$nsf','$paidsum','$hudpay','$datepaid','$comment','$phone','$cell');

// set parameters and execute
$tenant='tenant';
$unit='unit';
$amtdue='amtdue'; // decimal field, not null
$amtpaid='amtpaid'; // decimal field, not null
$duedate='duedate';
$datepaid='datepaid';
$prevbal="prevbal"; // decimal field, not null
$latechg='latechg'; // decimal field, not null
$secdep='secdep'; // decimal field, not null
$damage='damage'; // decimal field, not null
$courtcost='courtcost'; // decimal field, not null
$nsf='nsf'; // decimal field, not null
$paidsum='paidsum'; // decimal field, not null
$hudpay='hudpay'; // decimal field, not null
$comment='comment';
$phone='phone';
$cell='cell';

$stmt -> execute();

echo "New records created successfully";
$stmt -> close();
	  }
?>
messages:
Fatal error: Uncaught Error: Call to a member function fetch_all() on bool on line 20
User avatar
Benjamin
Site Administrator
Posts: 6935
Joined: Sun May 19, 2002 10:24 pm

Re: error: function fetch_all()

Post by Benjamin »

Your database query is failing most likely. You aren't passing any parameters to the prepare method.
theavgdev
Forum Newbie
Posts: 2
Joined: Thu Sep 08, 2022 3:32 pm
Contact:

Re: error: function fetch_all()

Post by theavgdev »

Are you trying to filter the "payfile" table by the "amtpaid" column?
If yes, then uncomment line 19 and change it to
$stmt->bind_param($amtpaid);

If no, then please explain what you are trying to do.
Post Reply