0
I’m developing an API based on code from a publication I saw on the internet, source: https://www.w3jar.com/crud-rest-api-in-php-pdo/
This file has a condition, if I pass an ID it returns a good record, but when I’m just performing GET without the specific ID is not being returned anything to the list, it just comes empty. Someone would have a solution as help?
<?php
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: access");
header("Access-Control-Allow-Methods: GET");
header("Access-Control-Allow-Credentials: true");
header("Content-Type: application/json; charset=UTF-8");
// INCLUINDO BANCO DE DADOS E FAZENDO OBJETO
require 'database.php';
$db_connection = new Database();
$conn = $db_connection->dbConnection();
// Checar paramêtro ID ou não
if(isset($_GET['id']))
{
    //Se tem id como paramêtro
    $post_id = filter_var($_GET['id'], FILTER_VALIDATE_INT,[
        'options' => [
            'default' => 'all_cursostable',
            'min_range' => 1
        ]
    ]);
}
else{
    $post_id = 'all_cursostable';
}
// Fazer query SQL
// Se não houver id irá mostrar todos os cursos, caso contrário irá mostrar apenas um
$sql = is_numeric($post_id) ? "SELECT * FROM `cursostable` WHERE id='$post_id'" : "SELECT * FROM `cursostable`"; 
$stmt = $conn->prepare($sql);
$stmt->execute();
//Verificar se há algo para printar no BD
if($stmt->rowCount() > 0 && $stmt->rowCount() != null){
    // Criar POST array
    $posts_array = [];
    while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
        $post_data = [
            'id' => $row['id'],
            'cursos' => $row['cursos'],
        ];
        // Mandar registros POST para o $posts_array
        array_push($posts_array, $post_data);
    }
    //Mostrar POST/No formato JSON
    echo json_encode($posts_array);
}
else{
    //Se não houver nada no BD
    echo json_encode(['message'=>'Dados não encontrados.']);
}
?>
						
Debug to see if you are entering the
if, if you have a day dump in the array$posts_array– Kayo Bruno
Pedro, I’m sure we can help you, but with the code above, there’s not enough information to help you. With this, I suggest you to var_dump() in $stmt and show in your question. Second thing: Why are you using is_numeric()? Pass on this information that we can ascertain what you need
– user148170
if(Empty($var)){ if empty... }
– Lucas Antonio
Hello guys, I will try this validation with var_dump, I am also a little lost in relation to the code because I want to learn how to develop an API with PHP through the source that is in the link I left. Really I’m not sure why it doesn’t bring the air and with all the bank results, but if I pass an ID, it returns the result normally.
– Pedro Wesley
Someone has an example of how a getAll request could work with PHP?
– Pedro Wesley