Salve, salve, queridos leitores e visitantes! Depois de um mês de férias, vamos voltar à ativa com novos posts e tutoriais. Demorei a voltar, mas garanto que valeu a pena, pois estou cheio de novas idéias e experiências para compartilhar com todos. Então, chega de “nhen-nhen-nhen” e vamos ao que interessa.
Vamos começar o ano com um tutorial bem interessante usando recursos de PHP, MySQL e JavaScript. Trata-se de como listar, selecionar e identificar um registro de banco de dados usando essas três linguagens básicas internet. Na verdade, este tutorial é uma sequência do tutorial escrito em novembro/2010, Filtros e buscas com php e mysql, o qual sugiro que leiam antes de dar continuidade a este.
A idéia é fazer a listagem dos registros existentes em uma tabela do banco de dados, colocando ao lado de cada linha (registro) um checkbox que fará a seleção do respectivo registro e permitirá executar ações como editar e excluir. Não vou entrar em detalhes de como fazer a listagem, pois isto já foi explicado no post citado acima. Vou apenas explicar o que alterei e adicionei, ok. Vamos lá.
O banco de dados é o mesmo do post que citei acima e não haverá modificações.
O PHP e o HTML também serão os mesmos com as seguintes modificações:
Em primeiro lugar, vamos fazer com que nossa tabela seja envolvida por um formulário, adicionando o seguinte código acima da linha 01:
<form name="grid" id="grid" action="" method="post">
* Detalhe importante: Retire o formulário do filtro que se encontra da linha 04 à 09. Caso deseje utilizá-la também, você pode colocá-lo em uma tabela acima dessa para não dar comflito, pois um formulário dentro de outro certamente vai dar problema.
O próximo passo é fechar o formulário abaixo da tag de fechamento da tabela, abaixo da linha 66
- Continuando com os ajustes, logo abaixo da linha 12, vamos inserir uma nova célula na tabela e em seu conteúdo haverá o checkbox que será responsável por marcar/desmarcar todos os demais checkboxes existentes no documento, ou seja, todos os registros vindos do banco de dados através de uma função javascript que é chamada sempre que marcado e desmarcado. Veja o código:
<td><input type="checkbox" name="marcatodos" id="marcatodos" value="" onClick="javascript:marcaTodos();" /></td>
- Abaixo da linha 56 será inserido também uma nova célula que se repetirá durante a execução do while responsável pela listagem dos registros. Essa célula também tem um checkbox cujo valor é o id do registro atual, ou que está sendo impresso pelo PHP. Assim, sempre que selecionar esse checkbox, automaticamente se está selecionando o registro o qual ele representa.
<td><input type="checkbox" name="checkbox" id="checkbox" value="< ? echo $rowCliente['id'];?/>" /></td>
Agora vamos ao javascript. O código abaixo pode ser colocado dentro da tag head da sua página da seguinte forma:
<script language="javascript">
function marcaTodos() {
var form = document.grid;
// se o checkbox é marcado, deve marcar todos os demais
if (form.selectall.checked == 1) {
for (i = 0; i < form.elements.length; i++) {
if (form.elements[i].type == "checkbox") {
form.elements[i].checked = 1;
}
}
}
// se o checkbox é desmarcado, deve desmarcar todos os demais
if (form.selectall.checked == 0) {
for (i = 0; i < form.elements.length; i++) {
if (form.elements[i].type == "checkbox") {
form.elements[i].checked = 0;
}
}
}
}
</script>
Colocarei o código acima dentro de um arquivo chamado script.js, salvo na mesma pasta do meu arquivo html principal e o chamarei dentro da tag head da minha página, através da linha abaixo:
<script type="text/javascript" src="script.js"></script>
Vamos às explicações: a função marcaTodos tem o objetivo de percorrer todo o documento html em busca dos elementos do tipo checkbox e marcá-los, caso o checkbox marcatodos esteja sendo marcado ou desmarcá-los caso ele esteja sendo desmarcado.
Bom, por enquanto é isto!
Espero que tenham gostado. Fiquem à vontade e deixem suas dúvidas, críticas e sugestões nos comentários.
Até o próximo post.







Oi Sergio,
Parabéns, muito legal a sua disposição em compartilhar conhecimentos.
Isso é exatamente o que preciso.
Sei que é pedir muito, mas por acaso você não tem esses arquivos (desse post + do post “Filtros e buscas com PHP e MySQL”) para disponibilizar para download?
Como sou iniciante e estou precisando disso com urgência, me perco em erros bobos como de sintaxe…
Obrigada e me desculpe o incomodo!
Oi, Priscila. Obrigado pelos elogios.
Sei como é difícil quando se está começando, mas pegar pronto e utilizar não é o melhor caminho.
Me envie quais problemas está tendo com estes códigos. Todos eles foram testados e utilizados em sistemas que desenvolvi (disposto no meu portfolio).
Assim, te dou uma ajuda por aqui e todos que acessam o site aprendem também, pode ser?
Abs.
Ok, Sergio. Muito obrigada! Mas não estou falando que seus códigos estão com erro, ok? O problema é comigo mesmo, por ser iniciante.
No primeiro artigo, criei o banco de dados, criei um arquivo index.php com os códigos e fiz a conexão com o bd utilizando
Quando peço para busca pelo nome Pri (nome que está cadastrado no banco) somente, retorna o erro:
“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘LIKE ‘%Pri%” at line 1″
O que deve ser exatamente o que você me falou no outro post… que pode ser aspas e tal!
Mas até agora não consegui encontrar o que é! Não estou vendo problema com as aspas!
Aqui segue meu arquivo index.php http://www.sendspace.com/file/73y8ku
Muito obrigada!
Oi, Priscila.
Tudo bem, então. Vamos depurar o seu código.
Primeira coisa a ser feita é visualizar o SQL que está sendo gerado. Sendo assim, coloque imediatamente acima da linha que executa seu código ($queryClientes = mysql_query($sqlClientes) or die(mysql_error()); ) o seguinte:
print $sqlClientes; break;
Isso vai imprimir na tela o SQL que gerou ao executar a busca. Vai aparecer outra linha de erro referente ao BREAK, simplesmente ignore-a, pois vc vai apagar essa linha quando o SQL estiver correto. O comando BREAK força o PHP a parar imediatamente a execução e geralmente é usado dentro de laços de repetição. Nesse caso ele é útil também para não deixar a execução prosseguir.
Feito isso, realize a busca e preste atenção no código SQL que está gerando. Um erro muito comum de quando se trabalha com concatenação de strings é o esquecimento em deixar espaço entre as strings concatenadas. Para ajudar, você pode copiar a SQL gerada e executá-la diretamente no banco de dados.
Acho que isso resolve pelo menos parte do seu problema.
Qualquer outra dúvida, comente novamente.
Abs.
Oi Sergio, achei meu erro!
“é o esquecimento em deixar espaço entre as strings concatenadas.”
Foi simplesmente isso! Não deixei espaço onde deveria!
Poxa, um erro tão besta!
Muito obrigada pela ajuda!
Ahh… normal acontecer.
Já sofri muito com erros como este quando estava iniciando.
Qualquer dúvida, posta ae!
Abs.