stack
stack

Reputation: 19

PHP PDO always give only one result

I wrote a SQL query with PDO. DB table has 3 results with match the query. But the PDO shows only one result.

my code is this

conn.php

function connect() {
    $servername = "localhost";
    $dbname = "guiding_db";
    $username = "user";
    $password = "pass";

    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    return $conn;
}

_admin.php

include_once './conn.php';

function getStudentsRequests(){
    $sql = "SELECT * FROM `user` WHERE signas = 'student' AND accept='0'";


   $result = connect()->query($sql);
   $out = $result->fetch(PDO::FETCH_ASSOC);
   print_r($out);
   return $out;

}

getStudentsRequests();

Upvotes: 0

Views: 261

Answers (3)

Shira
Shira

Reputation: 6570

PDOStatement::fetch() loads a single row only. Use PDOStatement::fetchAll() to load all rows (or use a while loop):

$out = $result->fetchAll(PDO::FETCH_ASSOC);

Upvotes: 1

maximkou
maximkou

Reputation: 5332

fetch method return next result (one). If you wish get all results - use methods like fetchAll

Upvotes: 0

nospor
nospor

Reputation: 4220

fetch method return only one row from query. If you want all you need to use while loop or fetchAll method

Upvotes: 0

Related Questions