Estou com o seguinte erro nesse código:
CONTROLE
Sistema Controle
Novo Cliente
Nome |
CPF/CNPJ |
Endereço |
Bairro |
Cidade |
Estado |
telefone |
Celular |
<?php
include 'database.php';
$pdo = Database::connect();
$sql = "SELECT * FROM tb_cliente ORDER BY id DESC";
foreach ($pdo->query($sql) as $row)
{
echo '<tr>';
echo '<td>'.$row['nome'].'</td>';
echo '<td>'.$row['cpf_cnpj'].'</td>';
echo '<td>'.$row['endereco'].'</td>';
echo '<td>'.$row['bairro'].'</td>';
echo '<td>'.$row['cidade'].'</td>';
echo '<td>'.$row['estado'].'</td>';
echo '<td>'.$row['tel_fixo'].'</td>';
echo '<td>'.$row['celular'].'</td>';
echo '<td width=250>';
echo '<a class="btn" href="read.php?codigo='.$row['codigo'].'">Read</a>';
echo ' ';
echo '<a class="btn btn-success" href="update.php"?codigo='.$row['codigo'].'">Update"</a>';
echo ' ';
echo '<a class="btn btn-danger" href="delete.php?codigo='.$row['codigo'].'">Delete</a>';
echo '</tr>';
}
database::disconnect();
?>
</tbody>
</table>
</div>
</div>
</body>
Porém está dando o seguinte erro:
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\genesis\index.php on line 44
Será que poderiam me informar o que estou fazendo de errado?
Obrigado a todos.
Verifique sua classe de conexão.
Tente assim e veja o resultado, aqui funcionou normal.
$pdo = new PDO('mysql:host=localhost;dbname=teste', 'root', '');
Colega,
esta é minha classe de conexão. Desculpe, mas estou começando agora com PHP.
<?php
class database
{
private static $dbhost = 'localhost';
private static $dbname = 'bdcontrole';
private static $dbusername = 'root';
private static $dbpassword = 'c1d1nh3';
private static $cont = null;
public function __construct()
{
die ('Int function is not allowed');
}
public static function connect()
{
if(null == self::$cont)
{
try
{
self::$cont = new PDO("mysql:host=".self::$dbhost.";"."dbname=".self::$dbname, self::$dbusername, self::$dbpassword);
}
catch (Exception $ex)
{
die($ex->getMessage());
}
}
return self::$cont;
}
public static function disconnect()
{
self::$cont = null;
}
}
Peço a gentileza de informar-me o que estou fazendo de errado. Obrigado.
já que você está começando, posso te ajudar assim:
<?php
define('HOST', 'localhost');
define('USER', 'root');
define('PASS', 'c1d1nh3');
define('BD', 'bdcontrole');
function conectarComPDO(){
$dsn = "mysql:host=".HOST.";dbname=".BD;
try{
$conectar = new PDO($dsn, USER, PASS);
$conectar->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $conectar;
}catch(PDOException $e){
echo "Erro ao conectar ao banco". $e.getMessage();
}
}
function listaProdutos(){
$pdo = conectarComPdo();
$query = "SELECT * FROM clientes";
try{
$listar = $pdo->query($query);
$listar->execute();
if($listar->rowCount() > 0){
return $listar->fetchAll(PDO::FETCH_ASSOC);
}
}catch(PDOException $e){
echo "Erro: ".$e->getMessage();
}
}
$todosProds = listaProdutos();
foreach ($todosProds as $pro){
echo '<tr>';
echo '<td>'.$pro['nome'].'</td>';
.....
}
Colega,
Fico muito grato pela sua ajuda até aqui, funcionou corretamente. Caso tenha outra dúvida, postarei.