Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Junior Aguiar

Mudar linha de uma Tabela no BD baseado em outra linha da mesma Tabela

Recommended Posts

Olá gente boa, tudo bom?

Pois bem. Eu tenho uma tabela com nome USERS que possui as seguintes colunas:

username > usuário

stripe_active > Valor 0 ou 1

subscription_ends_at > Será data final da assinatura

 

Quero saber se tem como montar uma rotina pra pegar a data em subscription_ends_at e com base nela assim que o usuário efetuar o login se a data for igual ao do BD ou Superior, mudar o valor da coluna stripe_active para 0(Inativo).

Esta rotina seria colocada na página header.php e claro, todos os dados citados acima seriam lidos de acordo com cada usuário logado. O próprio sistema se encarregará de levar o usuário para a página de renovação de assinatura.

Desde já agradeço se alguém puder ajudar ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Flávio. Obrigado por sua resposta.

Ainda não sou um expert nestas bagaças hehe. Você teria algum exemplo prático com base no que estou querendo??

E meu script não possui um cron.php como nos tutoriais.

 

O CRON seria capaz de ler quais usuários estão em "atraso" e mudar a linha stripe_id para 0?

 

Obrigado parceiro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo, o CRON é um serviço que permite a realização de tarefas programadas em dias e horários determinados por você.

 

Por exemplo você criar um arquivo tarefa.php que faz o que você deseja e define nas configurações do CRON, que rode esse arquivo todos os dias a 00:00.

 

e o arquivo tarefa.php tem um codigo php nomal, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, entendi em partes. A dúvida que persiste é, oque devo colocar neste arquivo tarefas.php? Me refiro ao código em si, estou totalmente no escuro em relação á isso amigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Leandro, que bom que vai tentar me ajudar. Primeiramente o site é este http://masterflix.16mb.com/ como poderá ver eu já consegui implementar o pagamento por Paypal, foi sofrido mas consegui. Se eu te passar o login e senha do cpanel, na confiança mesmo, não seria mais fácil?

Em outro fórum o pessoal está falando o seguinte

"Quando ele fizer o login fazes um SELECT na BD a pesquisar a subscription_ends_at se for menor que a data atual fazes um UPDATE para de 1 para 0. E está feito"

E também

"é bem simples, quando você logar no sistema (ele faz um select correto?) é só pegar o ID e a data, depois você compara a data com a de hoje e faz um UPDATE TABLE SET CAMPO = 0 WHERE USER = ID"

 

Mas ninguém fala como devo proceder em se tratando do código em si.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A intenção do fórum é ajudar orientando não é dar de mão beijada ;)

Se você quiser realmente aprender aqui é o lugar se quiser que alguém faça dentro do fórum tem local de negócios.

Ai você que me diz.

 

Mas é isso mesmo que você irá fazer, pegar os dados da pessoa logada, fazer a comparação e depois fazer um update.

Não tem segredo.

 

Mas para isso você precisa conhecer o básico e conhecer esse código, pelo jeito não foi você quem fez né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo jeito fui mal interpretado. Não estou querendo nada de mão beijada, estou pedindo uma ajuda. Por isso eu disse no primeiro post "Agradeço desde já quem puder ajudar". E não, este sistema eu comprei em meados de 2014 na Codecanyon e ficou guardado até então. Como não tenho mais acesso ao email que usei no cadastro na Envato, não consigo suporte para o produto muito menos as atualizações do mesmo. Sendo que possuo o Purchase Code , mas eles dizem que expirou e não podem fazer nada.

 

Com base no que foi dito, fui atrás e consegui o seguinte código:

SELECT * FROM users WHERE subscription_ends_at < CURDATE()
UPDATE users SET stripe_active = 0 WHERE users = id
Agora eu pergunto. É isso mesmo? E se não, oque eu acrescento? Oque eu tiro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tirou isso do seu script ?

 

Aqui você está selecionando todos os users cuja a data é menor que hoje ( se fosse usar um cron poderia usar isso daqui em outro local )

SELECT * FROM users WHERE subscription_ends_at < CURDATE()

 

E aqui você atualiza

UPDATE users SET stripe_active = 0 WHERE users = id

 

O que você precisa fazer agora, é encontrar é o query que faz o login

 

Você consegue saber aonde é a página index do usuário logado? quando o usuário faz o login e vai para alguma página, certo? Nessa página tu faz o seguinte.

Pega os dados dele ( que provavelmente deve estar em um consulta) e compara subscription_ends_at com a data d e hoje ( procura aqui no fórum comparação de data), caso for menor igual você dá um update

 

Não está difícil, mas você precisa saber aonde estão seus códigos. Se não vai ficar se repetindo as respostas e ninguém vai mais responder.

Acha o código ai e passa, vai colocando os códigos que você está fazendo. Assim a galera vai ajudando.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tirou isso do seu script ?

 

Aqui você está selecionando todos os users cuja a data é menor que hoje ( se fosse usar um cron poderia usar isso daqui em outro local )

SELECT * FROM users WHERE subscription_ends_at < CURDATE()

 

E aqui você atualiza

UPDATE users SET stripe_active = 0 WHERE users = id

 

O que você precisa fazer agora, é encontrar é o query que faz o login

 

Você consegue saber aonde é a página index do usuário logado? quando o usuário faz o login e vai para alguma página, certo? Nessa página tu faz o seguinte.

Pega os dados dele ( que provavelmente deve estar em um consulta) e compara subscription_ends_at com a data d e hoje ( procura aqui no fórum comparação de data), caso for menor igual você dá um update

 

Não está difícil, mas você precisa saber aonde estão seus códigos. Se não vai ficar se repetindo as respostas e ninguém vai mais responder.

Acha o código ai e passa, vai colocando os códigos que você está fazendo. Assim a galera vai ajudando.

 

 

Ok, vamos lá. Este código abaixo se chama auth.php e é onde o usuário digita os dados para login:

<?php include('includes/header.php'); ?>
<?php if($type == 'login'): ?>
<h2 class="form-signin-heading">Faça Seu Login</h2>
<form method="post" action="<?= ($settings->enable_https) ? secure_url('login') : URL::to('login') ?>" class="form-signin">
<input type="text" class="form-control" placeholder="Email ou Usuário" tabindex="0" id="email" name="email" value="<?php if($settings->demo_mode == 1): ?>demo<?php endif; ?>">
<input type="password" class="form-control" placeholder="Senha" id="password" name="password" value="<?php if($settings->demo_mode == 1): ?>demo<?php endif; ?>">
<button class="btn btn-lg btn-primary btn-block" type="submit">Entrar</button>
<br />
<input type="hidden" id="redirect" name="redirect" value="<?= Input::get('redirect') ?>" />
<a href="<?= ($settings->enable_https) ? secure_url('password/reset') : URL::to('password/reset') ?>">Perdeu sua Senha?</a>
<?php if($settings->demo_mode == 1): ?>
<div class="alert alert-info demo-info" role="alert">
<p class="title">Demo Login</p>
<p><strong>username:</strong> <span>demo</span></p>
<p><strong>password:</strong> <span>demo</span></p>
</div>
<?php endif; ?>
<input type="hidden" name="_token" value="<?= csrf_token() ?>" />
</form>
<?php elseif($type == 'signup'): ?>
<?php include('partials/signup.php'); ?>
<!-- SHOW FORGOT PASSWORD FORM -->
<?php elseif($type == 'forgot_password'): ?>
<?php include('partials/form-forgot-password.php'); ?>
<!-- SHOW RESET PASSWORD FORM -->
<?php elseif($type == 'reset_password'): ?>
<?php include('partials/form-reset-password.php'); ?>
<?php endif; ?>
<?php include('includes/footer.php'); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E se bem sucedido o login ele vai para a home.php:

<?php include('includes/header.php'); ?>

<style type="text/css">
#home-content{
margin-top:545px;
}
ul.video_list{
margin:0px;
padding:0px;
}
.video_list li{
display:inline;
list-style: none;
}
</style>
<div id="home-hero">
<div id="dim-bg">
<div class="container home-titles">
<h1><?= ThemeHelper::getThemeSetting(@$theme_settings->home_headline, 'Your Online Video Subscription Platform') ?></h1>
<h4><?= ThemeHelper::getThemeSetting(@$theme_settings->homepage_subheadline, 'A bit more details about your Online Video Subscription Service') ?></h4>
<?php if(Auth::guest()): ?>
<button class="btn btn-primary" onClick="window.location='/signup'" href="/signup"><?= ThemeHelper::getThemeSetting(@$theme_settings->home_button_text, 'Become a Member for just $7 a month') ?></button>
<?php else: ?>
<button class="btn btn-primary" onClick="window.location='/videos'" href="/videos"><?= ThemeHelper::getThemeSetting(@$theme_settings->home_button_text_logged_in, 'Start Watching Videos Now') ?></button>
<?php endif; ?>
</div>
</div>
</div>
<div class="container">
<div id="home-content">
<h3>Veja Nossos Vídeos Recentes Abaixo</h3>
<div class="row">
<?php include('partials/video-loop.php'); ?>
</div>
</div>
<?php include('partials/pagination.php'); ?>
</div>
<script type="text/javascript" src="<?= THEME_URL . '/assets/js/jquery.bgswitcher.js'; ?>"></script>
<script>
$(document).ready(function(){
$("#home-hero").bgswitcher({
images: ["<?= THEME_URL ?>/assets/img/home/1.jpg", "<?= THEME_URL ?>/assets/img/home/2.jpg", "<?= THEME_URL ?>/assets/img/home/3.jpg", "<?= THEME_URL ?>/assets/img/home/4.jpg"], // Background images
effect: "fade", // fade, blind, clip, slide, drop, hide
interval: 4200,
duration:1000
});
});
</script>
<?php include('includes/footer.php'); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por partes. Lembrando que users é a Tabela. Fiz o seguinte:

 

<?php include('includes/header.php'); ?>

$query = mysql_query("SELECT * FROM users WHERE id = $id");

 

Por enquanto só isso devido a minha total falta de conhecimento :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem certeza que esse $id guarda a informação da pessoa.

Faça isso abaixo e cole o resultado aqui

$row = mysql_fetch_array($query);
var_dump($row);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara não vou conseguir te ajudar.

Coisas basicas você não está sabendo fazer.

E outra, pode ser que foi usado Laravel.

Então boa sorte ai na sua jornada

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado Leandro. Tenho isso como um Hobby, mais pra aprender mesmo. Mas assim como você não nasceu sabendo tudo oque sabe, precisou errar muito até chegar onde chegou e com certeza assim como eu, teve que passar pelo básico.

 

Mas mais uma vez, muito obrigado e desculpa pela(como disse no outro post onde qualquer pessoa que soubesse ler o Básico e interpretar saberia o que estou dizendo) minha total falta de conhecimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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