Ir para conteúdo

Carcleo

Members
  • Total de itens

    1920
  • Registro em

  • Última visita

  • Dias vencidos

    1

Carcleo venceu o dia em Outubro 13 2014

Teve o conteúdo mais curtido

Reputação

4 Comum

5 Seguidores

Sobre Carcleo

  • Data de Nascimento 12/20/1970

Informações Pessoais

  • Localização
    Muriae/MG

Últimos Visitantes

1853650 visualizações
  1. Carcleo

    limpar campos póstumos

    jQuery: // JavaScript Document $(document).ready(function (e) { $("#idPastor").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosRedes.php", type: "POST", dataType: "json", data: { idPastor: $("#idPastor").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idRede').find('option').remove(); if (result == null){ $("#idRede").append("<option value=>Sem Redes</option>"); } else { $("#idRede").append("<option value=>Escolha a Rede</option>"); result.forEach(function(option){ $("#idRede").append("<option value=" + option["idRede"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idRede").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosRegioes.php", type: "POST", dataType: "json", data: { idRede: $("#idRede").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idRegiao').find('option').remove(); if (result == null){ $("#idRegiao").append("<option value=>Sem Regiões</option>"); } else { $("#idRegiao").append("<option value=>Escolha a Região</option>"); result.forEach(function(option){ $("#idRegiao").append("<option value=" + option["idRegiao"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idRegiao").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosAreas.php", type: "POST", dataType: "json", data: { idRegiao: $("#idRegiao").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idArea').find('option').remove(); if (result == null){ $("#idArea").append("<option value=>Sem Áreas</option>"); } else { $("#idArea").append("<option value=>Escolha a Área</option>"); result.forEach(function(option){ $("#idArea").append("<option value=" + option["idArea"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idArea").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosSetores.php", type: "POST", dataType: "json", data: { idArea: $("#idArea").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idSetor').find('option').remove(); if (result == null){ $("#idSetor").append("<option value=>Sem Setores</option>"); } else { $("#idSetor").append("<option value=>Escolha a Setor</option>"); result.forEach(function(option){ $("#idSetor").append("<option value=" + option["idSetor"] + ">" + option["nome"] + "</option>") }); } } }); }); $("#idSetor").on("change", function () { $.ajax({ url: "_scripts/_php/_validacoes/buscarDadosCelulas.php", type: "POST", dataType: "json", data: { idSetor: $("#idSetor").val() }, beforeSend: function() { $("#imgCarregando").css('display','block'); }, success: function (result) { $("#imgCarregando").css('display','none'); $('#idCelula').find('option').remove(); if (result == null){ $("#idCelula").append("<option value=>Sem Celulas</option>"); } else { $("#idCelula").append("<option value=>Escolha a Célula</option>"); result.forEach(function(option){ $("#idCelula").append("<option value=" + option["idCelula"] + ">" + option["nome"] + "</option>") }); } } }); }); }); Esse script, faz a população via $.ajax do jQuery de combos no form. Tudo funciona bem. Mas considere o o form abaixo: Imagine o que o usuário preencheu todos os campos e de repente resolve tocar a opção do select de Redes como está na figura. Porém, a opção Rede 2 NÃO possui Regiões Cadastradas ainda. No entanto, note que todos os campos abaixo estão preenchidos e isso não negaria um possível submit do form com dados errados? Ainda, imagine a situação onde a opção Rede 2 POSSUI outas Regiões Cadastradas o que comprometeria a escolha dos selects que seguem Como contornar esse problema?
  2. Carcleo

    Buffering em MediaPlayer

    Tenho um objeto MediaPlayer mPlayer = new MediaPlayer(); Objetivo: Tocar o Streaming de uma Web Rádio e funciona corretamente. Porém, quando clico em Play, leva um tempo até que a Rádio Web comece a tocar. Existe alguma forma de enquanto o streaming estiver carregando, eu pegar o percentual para passar para uma SeekBar por exemplo?, Como? Segue o que eu já fiz: package carcleo.com.player; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.ProgressDialog; import android.app.TaskStackBuilder; import android.content.Context; import android.content.Intent; import android.media.AudioManager; import android.media.MediaPlayer; import android.media.MediaPlayer.OnBufferingUpdateListener; import android.os.AsyncTask; import android.os.Build; import android.support.annotation.RequiresApi; import android.support.v4.app.NotificationCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.SeekBar; import android.widget.TextView; import java.io.IOException; public class player extends AppCompatActivity implements OnBufferingUpdateListener{ private MediaPlayer mPlayer; private String URL; private Button btnPlayPause; private Boolean conexao = false; private SeekBar sb; private TextView textView; private TextView textView2; private TextView textView3; private NotificationManager mNotificationManager; private AudioManager audioManager; private ProgressDialog progressDialog; @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player); sb = findViewById(R.id.seekBar); textView = findViewById(R.id.textView); textView2 = findViewById(R.id.textView2); textView3 = findViewById(R.id.textView3); progressDialog = new ProgressDialog(this); btnPlayPause = (Button) findViewById(R.id.btnPlayPause); btnPlayPause.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { try { tocaPausa(); } catch (IOException e) { e.printStackTrace(); } } }); configuraAudioManager(); } private void tocaPausa() throws IOException { if (conexao == true) { if (!mPlayer.isPlaying()) { mPlayer.start(); btnPlayPause.setBackgroundResource(R.drawable.pause); } else { mPlayer.pause(); btnPlayPause.setBackgroundResource(R.drawable.play); } } else { String url = "rtsp://cdn-the-2.musicradio.com:80/LiveAudio/Capital"; // your URL here new Play().execute(url); } } private void configuraAudioManager() { audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC); int volume = audioManager.getStreamVolume(AudioManager.STREAM_MUSIC); sb.setMax(maxVolume); sb.setProgress(volume); sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, AudioManager.FLAG_SHOW_UI); Double total = progress * 6.666666666666667; String valor =Integer.toString(Integer.valueOf(total.intValue())); textView.setText(valor+" %"); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); } @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) private void notificacao (){ NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.home) .setContentTitle("Rádio Capital") .setContentText("Agora deu"); Intent resultIntent = new Intent(this, player.class); TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); stackBuilder.addParentStack(player.class); stackBuilder.addNextIntent(resultIntent); PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); mBuilder.setContentIntent(resultPendingIntent); mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); mNotificationManager.notify(1, mBuilder.build()); } private void contaBuffer () { textView2.setText(Integer.toString(mPlayer.getDuration())); mPlayer.setOnBufferingUpdateListener( new MediaPlayer.OnBufferingUpdateListener() { public void onBufferingUpdate(MediaPlayer mp, int percent) { double ratio = percent / 100.0; int bufferingLevel = (int)(mp.getDuration() * ratio); sb.setSecondaryProgress(bufferingLevel); textView2.setText(Integer.toString(bufferingLevel)); } } ); } public void mostraBuffer() { mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END){ progressDialog.dismiss(); return true; } else if(what == MediaPlayer.MEDIA_INFO_BUFFERING_START){ progressDialog.show(); } return false; } }); } }); } @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { textView3.setText(Integer.toString(percent)); } class Play extends AsyncTask<String, Void ,Boolean > { @Override protected void onPreExecute() { btnPlayPause.setBackgroundResource(R.drawable.carregando); btnPlayPause.setEnabled(false); } @Override protected Boolean doInBackground(String... params) { try { mPlayer = new MediaPlayer(); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.setDataSource(params[0]); mostraBuffer(); mPlayer.prepare(); // might take long! (for buffering, etc) return true; } catch (IOException e) { e.printStackTrace(); } return false; } @Override protected void onPostExecute(Boolean result) { if (result == true){ btnPlayPause.setEnabled(true); mPlayer.start(); conexao = true; btnPlayPause.setBackgroundResource(R.drawable.pause); contaBuffer(); } else { conexao = false; } } } }
  3. Carcleo

    Conexão com a INTERNET no Android Studio

    Olá, tenho o form abaixo onde eu leio um json à partir de um endereço na web http://www.hotplateprensas.com.br/ws/clientest.php que me entrega uma string json do tipo { "clientes":[ { "idClientesT":"1", "tipo":"s", "nome":"Carlos"}, { "idClientesT":"2", "tipo":"s", "nome":"Rogério" } ] } Então, pego ela no AndroidStudio com a Activity abaixo: package carcleo.com.radiosingular; import android.os.Bundle; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import carcleo.com.radiosingular.classes.JsonClass; public class form extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.form); } public void listaClientes (View View) { if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } String url = "http://hotplateprensas.com.br/ws/clientest.php"; JsonClass json = new JsonClass(); JSONObject clientesLista = json.getJSONFromUrl(url); clientes(clientesLista); } public void clientes(JSONObject jsonCli) { try { JSONArray arrayPlanetas = jsonCli.getJSONArray("clientes"); for (int i = 0; i < arrayPlanetas.length(); i++) { JSONObject cliente = arrayPlanetas.getJSONObject(i); Log.d("idClientesT", cliente.getString("idClientesT")); Log.d("tipo", cliente.getString("tipo")); Log.d("nome", cliente.getString("nome")); } } catch (JSONException e) { e.printStackTrace(); } } } Esse código funciona normalmente.Porém, é preciso colocar o trecho de código abaixo; if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } Senão, a conexão com a internet NÃO é estabelecida. No entanto, eu já adicionei a permissão de acesso à INTERNET no AndroidManifest. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="carcleo.com.radiosingular"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".login"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".principal" /> <activity android:name=".form" /> <activity android:name=".retrofit" /> </application> </manifest> Mas não adianta. Se eu retirar esse bloco de código if (android.os.Build.VERSION.SDK_INT > 9){ StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } A conexão com a INTERNET não acontece. O problema é que quantas vezes eu precisar acessar à INTERNET será o mesmo número de vezes que terei que fazer uso desse trecho de código? Será que não existe um arquivo de configuração geral para isso no AndroidStudio?
  4. Carcleo

    Campos sobrepostos e gira e some botão

    Boa Noite! Estou iniciando na arte do Android Studio e estou apanhando bastante e venho em busca de ajuda. Tenho um formulário (Activity) de login. 2 campos: login e senha e 1 botão Quando compilo os campos ficam um sobre o outro. Eis o xml <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".Login"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="LOGON" tools:layout_editor_absoluteX="162dp" tools:layout_editor_absoluteY="16dp" /> <EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPersonName" android:text="Usuário" tools:layout_editor_absoluteX="83dp" tools:layout_editor_absoluteY="61dp" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:inputType="textPassword" tools:layout_editor_absoluteX="80dp" tools:layout_editor_absoluteY="129dp" /> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Login" tools:layout_editor_absoluteX="147dp" tools:layout_editor_absoluteY="201dp" /> </android.support.constraint.ConstraintLayout> E o .java package carcleo.com.cadastrodeclientes; import android.app.Activity; import android.os.Bundle; public class Login extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); } } O que estou errando?
  5. Carcleo

    conexão remota não funciona. Só local

    O erro estava em que na variável que abriga o DSN NÃO pode haver quebras de linha. Soução: new PDO( "mysql:host=".self::$hostname.";dbname=". self::$dbname, self::$username, self::$password, $opcoes);
  6. Carcleo

    Como tratar (esse tipo de) redirecionamento no .htaccess?

    RewriteEngine On RewriteBase /crud/ # TODAS URLS CAEM NO INDEX. RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^([^/]*)$ index.php [L] # SE POR ACASO, A URL FOR manutencao.php, LIBERA ACESSO A ELA # NESSE CASO, FICA ÓBVIO QUE PARA TODAS AS PÁGINA PRECISARÁ HAVER UM REDIRECIONAMENTO # À manutenção.php. SENÃO, NÃO FUNCIONARÁ! RewriteCond %{HTTP_HOST} ^manutencao.php [NC] RewriteRule ^(.*)$ manutencao.php/$1 [L,R=301] # ROTAS DE ERROS ErrorDocument 401 http://localhost/crud/401.php ErrorDocument 403 http://localhost/crud/403.php ErrorDocument 404 http://localhost/crud/404.php ErrorDocument 500 http://localhost/crud/500.php
  7. Tenho o arquivo .htaccess abaixo: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /crud/ #acessa as requisições abaixo #se for um arquivos vazio RewriteCond %{REQUEST_FILENAME} -s [OR] #ou se for um link de referência (simbólico) RewriteCond %{REQUEST_FILENAME} -l [OR] #ou se for um diretório RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(.) index.php </IfModule> Na minha classe de Constantes (.php), tenho uma constante: static private $livre = false; E no construtor da classe eu faço a verificação da condição de $livre public function __construct($_util) { if(self::$livre == false) { header("Location: ".$_SERVER["SERVER_PATH"]."/crud/manutencao.php"); exit; } Acontece que quando $livre = true; funciona bem; Porém, quando: $livre = false; não consigo chegar ao arquivo de manutenção como está na classe. Isto é, dá erro de muitas tentativas: Esta página não está funcionando Redirecionamento em excesso por localhost Tente limpar os cookies. ERR_TOO_MANY_REDIRECTS Acho que preciso fazer uma tratativa no arquivo .htaccess para validar a condição de $livre também. Algo como: if ($livre == false) manutenção.php else index.php Mas não sei como fazer isso uma vez que existe no .htaccess a regra dizendo que todas requisições chegarem no index.php;
  8. Carcleo

    conexão remota não funciona. Só local

    Fiz a conexão PDO com mysql conforme abaixo baseado no teu código: $dsn = 'mysql:host=' . self::$hostname . '; dbname=' . self::$dbname; $opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); self::$conexao = new PDO( $dsn, self::$username, self::$password, $opcoes ); que funciona perfeitamente. Mas se eu colocar o conteúdo da variável $dsn junto à string de conexão conforme abaixo dá erro que me parece ser de concatenação. Por favor me ajuda a descobrir onde está esse erro? $opcoes = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'); self::$conexao = new PDO( "mysql: host=" . self::$hostname . "; dbname=" . self::$dbname, self::$username, self::$password, $opcoes );
  9. Carcleo

    conexão remota não funciona. Só local

    Vou ver e já posto retorno!
  10. Carcleo

    conexão remota não funciona. Só local

    mesmo assim não dá certo. Lembrando que sem PDO funciona normalmente. Isto é: new mysqli(...) ]com os mesmos dados de coeexao.
  11. Carcleo

    conexão remota não funciona. Só local

    Sem a porta eu já tentei e deu erro também. Vou contatar o servidor do UOL HOST e ver como eles qual a porta que eles usam
  12. Carcleo

    conexão remota não funciona. Só local

    Estou recebendo esse erro do servidor ao tentar conectar via PDO com o mysql no link abaixo http://funerariasaopedro.net.br/crud/ Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' in /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php:33 Stack trace: #0 /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php(33): PDO->__construct('mysql:?????????...', 'carcleo', 'teste') #1 /var/www/html/funerariasaopedro.net.br/web/crud/cadastraPlanos.php(9): CONEXAO\Conexao->__construct() #2 /var/www/html/funerariasaopedro.net.br/web/crud/index.php(27): require_once('/var/www/html/f...') #3 {main} thrown in /var/www/html/funerariasaopedro.net.br/web/crud/_conexao/Conexao.php on line 33 Classe de conexão: <?php namespace CONEXAO; use PDO; class Conexao { private static $conexao; private static $hostname = "server"; private static $port = 3306; private static $dbname = "db"; private static $username = "user"; private static $password = "senha"; public function __construct() { if (isset(self::$conexao)) { self::$conexao = self::$conexao; } else { try { self::$conexao = new PDO('mysql: host='.self::$hostname.'; port= '.self::$port.'; dbname='.self::$dbname, self::$username, self::$password ); } catch (Exception $e) { self::$conexao = NULL; echo $e->getMessage(); } } } public function abreConexao() { return self::$conexao; } public function fechaConexao () { if (self::$conexao != null) { self::$conexao = null; } } } O que pode ser isso? Obs.: O mesmo código localmente funciona e os dados de conexão estão corretos no servidor. As senhas do servidor já foram testadas ok. A classe abaixo, com os mesmos dados, funciona: <?php class Conexao { private $host = "server"; private $user = "user"; private $password = "senha"; private $db = "db"; private $conexao; public function abreConexao() { if (isset($this->conexao)) { return $this->conexao; } else { $this->conexao = new mysqli($this->host, $this->user, $this->password, $this->db); $this->conexao->set_charset("utf8"); return $this->conexao; } } public function fechaConexao () { if ($this->conexao != null) { $this->conexao = null; } } } ?>
  13. Carcleo

    Erro na listagem com PDO

    Sim. Mas já já chego lá. Vou usar composer sim.
  14. Carcleo

    Erro na listagem com PDO

    namespace precisa vir primeiro né? Faltou o use PDO na classe Tabelas.
  15. Carcleo

    Erro na listagem com PDO

    Estou tentando aprender PDO mas estou tendo dificuldades. Tenho 3 arquivos: Planos.php <?php namespace PLANOS; use TABELAS\Tabelas; require_once "Tabelas.php"; class Planos extends Tabelas { public function __construct ($_conexao, $_tabela) { parent::__construct ($_conexao, $_tabela); } } ?> Tabelas.php <?php namespace TABELAS; abstract class Tabelas { private $conexao; private $tabela; private $ultimoCadastrado; public function __construct($_conexao, $_tabela) { $this->conexao = $_conexao; $this->tabela = $_tabela; } public function cadastrar (array $objeto) { $parametros = $valores = ""; foreach ($objeto as $objeto=>$valor): $parametros.= $objeto.","; $valores.= "'".$valor."',"; endforeach; $parametros = substr($parametros,0, -1); $valores = substr($valores,0, -1); $sql = "INSERT INTO ".$this->tabela." (".$parametros.") VALUES (".$valores.")"; $query = $this->conexao->prepare($sql); $execucao = $query->execute(); $this->ultimoCadastrado = $this->conexao->lastInsertId(); return $execucao; } public function ultimoIdCadastrado () { return $this->ultimoCadastrado; } public function editar (array $objeto, $id) { $str = ""; foreach ($objeto as $objeto=>$valor): $str .= $objeto ."='". $valor."',"; endforeach; $str = substr($str, 0, -1); $sql = "UPDATE ".$this->tabela." SET ".$str." WHERE id".ucfirst($this->tabela)."=".$id; $query = $this->conexao->prepare($sql); return $query->execute(); } public function bloquear ($id, $bloqueado) { $sql = "UPDATE ".$this->tabela." SET bloqueado = '".$bloqueado."' WHERE id".$this->tabela." = ".$id; $query = $this->conexao->prepare($sql); return $query->execute(); } public function excluir ($id) { $sql = "DELETE FROM ".$this->tabela." WHERE id".$this->tabela." = ".$id; $query = $this->conexao->prepare($sql); return $query->execute(); } public function listar () { $sql = "SELECT FROM ".$this->tabela; $query = $this->conexao->prepare($sql); $query->execute(); return $query->fetch( PDO::FETCH_ASSOC ); } public function listarId ($id = null) { $sql = "SELECT FROM ".$this->tabela; if ($id != null) $sql .= " WHERE id".ucfirst($this->tabela)."=".$id; $query = $this->conexao->prepare($sql); return $query->execute(); } public function listarParametros ($where) { $sql = "SELECT FROM ".$this->tabela." ".$where; $query = $this->conexao->prepare($sql); return $query->execute(); } } ?> Index.php <?php ini_set("display_errors",true); ini_set("display_startup_erros",1); error_reporting(E_ALL | E_NOTICE | E_STRICT); use PLANOS\Planos; use TABELAS\Tabelas; $conexao = new PDO('mysql:host=localhost;dbname=funeraria2', 'root', 'mysql'); $objeto = array ( "tipo" => 's', "nome" => "Carlos", "login" => "caca", "senha" => "1234", "bloqueado" => "n" ); $objeto2 = array ( "idAdministradores" => 3, "tipo" => 's', "nome" => "Castro", "login" => "abcd", "senha" => "4321", "bloqueado" => "s" ); require_once "Planos.php"; $planos = new Planos($conexao, "administradores"); echo $planos->cadastrar($objeto) ? 1 : 2; echo "<br />"; echo $planos->ultimoIdCadastrado(); echo "<br />"; echo $planos->editar($objeto2, 3) ? 1 : 2; echo "<br />"; echo $planos->bloquear(3, 's') ? 1 : 2; echo "<br />"; echo $planos->excluir(4) ? 1 : 2; echo "<br />"; print "<pre>"; print_r($planos->listar()); print "</pre>"; echo $planos->listar() ? 1 : 2; echo "<br />"; echo $planos->listarId(1) ? 1 : 2; echo "<br />"; echo $planos->listarParametros("WHERE nome = 'Carlos'") ? 1 : 2; echo "<br />"; ?> Quando rodo esse script recebo o erro abaixo: Fatal error: Uncaught Error: Class 'TABELAS\PDO' not found in D:\Trabalhos\host\htdocs\crud\Tabelas.php:102 Stack trace: #0 D:\Trabalhos\host\htdocs\crud\index.php(47): TABELAS\Tabelas->listar() #1 {main} thrown in D:\Trabalhos\host\htdocs\crud\Tabelas.php on line 102 Mas não consigo achar que erro é esse! Engraçado é que só não está fazendo leitura. Mas gravação, exclusão, edição, normal!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.