Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Tenho a seguinte questão:
Preciso verificar alunos cadastrados em um banco de dados e ver se ele tem email ou não.
Estou tentando assim:
$quant = 1;
$seg = 4;
if (!isset($inicio)) {
$inicio = 0;
}
$verifica = Registry::get( 'dbemail' )->sql("SELECT * FROM alunos WHERE status='ativo' and checado='0' LIMIT $inicio, $quant ");
$r = mysql_fetch_assoc($verifica);
$id = $r['id'];
Registry::get( 'dbemail' )->sql("UPDATE alunos SET checado='1' WHERE id='$id'");
echo "<meta http-equiv='refresh' content='{$seg},URL=?inicio=".($inicio+1)."'>";
Coloquei o que era mais importante. Depois de verificar o aluno o sistema me manda um email com id e nome do aluno.
So que quando o sistema da UPTADE no aluno de que ele foi chegado e o sistema retoma para verificar o outro ele pula um aluno.
sei que o problema está entreo "LIMIT $inicio, $quant" o "UPDATE" e o "META REFRESH", porque quando tiro o "UPDATE" ele funciona sem pular aluno.
O que posso fazer?
uai como assim os dois juntos?
bom o UPDATE
UPDATE tabela SET colTab1 = 'valor1', colTab2 = 'colTab2' WHERE id=1;
bom desta forma eu estaria buscando um unico registro da tabela e mudando duas colunas dele, se não definir o 'where id=valor' ele muda todos da tabela
o LIMIT.:
seria o tatal de registros q quero posso iniciar a ver o segundo registro até o trigésimo
SELECT * FROM tabela LIMIT 2,30;
o LIMIT é para ser sempre o ultimo dado determinado na linha sql,
veja q posso usar o limit ñ só na select
UPDATE tabela SET colTab1 = 'valor1', colTab2 = 'colTab2' LIMIT 0,10;
aqui estou mudando os 10 primeiros registros do meu bd, não defini qual a linha para alterar, mas coloquei um limit
é simple de usar qualquer coisa é só pesquisar no GOOGLE, existe muito material na web
Olá Victor,
Preciso usar o LIMIT para que o sistema faça uma checagem a cada 4 segundos que é o tempo de envio do email para que não de pau no servidor ou algo assim, isso foi uma especificação da Locaweb.
ok, adicione o limite na query que eu te passei no final do select.
agora se você ker limitar a uma quantidade específica use a sintaxe assim, é mais simples
LIMIT 5 --pega 5 registros
Putz cara simplesmente perfeito funcionou ele não pula mais 1 aluno.
Vou até usar isto em outro script que fiz aqui.
vlw :clap:
disponha!!
Espero que tenha entendido a query e não só copiado!!
boa tarde!
EDIT:
Seguinte, pelo que entendi você quer marcar a coluna checado com o valor 1 quando o aluno estiver com campo status = ativo, campo checado = 0 e existir email cadastrado para o aluno. Em relação ao limite eu não intendi, pra que você quer limitar essa atuallização?? Não dá pra fazer tudo de uma só vez??
segue a query para sua análise
SETchecado= '1' WHEREidIN (