Ir para conteúdo

POWERED BY:

Arquivado

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

helnata

[Resolvido] Date como add +1

Recommended Posts

OI como posso add + 1 mês usando essa codigo..

 

<?php
include("config.php");

$post_pagar = $_POST["id_do_aluno"];

$pega_aluno = mysql_query("SELECT * FROM aluno WHERE id = $post_pagar");

while($nomes = mysql_fetch_array($pega_aluno))
{
$id_aluno = $nomes["id"];
$nome_aluno = $nomes["nome"];
$data_venci = $nomes["data_ven"];
}
?>

 

queria saber como eu poderia add mais um mês

nessa string $data_venci

 

Usando date...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é "certo" por 1 Month. Porquê tem meses de 30, 31 e 28 dias.

A não ser que você deixe padrão 30 dias.

 

Mas caso não for padrão, faça assim:

<?php
   $data_venci = date($nomes["data_ven"], strtotime('+ 31 days')); // 30 ou 28 days
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Porquê tem meses de 30, 31 e 28 dias.

 

Muitas empresas padronizam 28 dias devido a uma questão prática, como 28 é múltiplo de 7 uma compra efetuada em um dia útil jamais vencerá em um fim de semana.

 

Agora, o ideal é fazer esse trabalho diretamente no banco de dados, assim:

 

SELECT `id`,`nome`,date_add(`data_ven` , INTERVAL 1 MONTH ) 'data_ven' FROM aluno

 

Coloquei alguns comentários no seu código, não deixe de lê-los.

 

/**
* Se o conteúdo de config.php for fundamental para a execução da sua aplicação, prefira
* require em vez de include
*/
require 'config.php';

/**
* Antes de utilizar o conteúdo de uma variável externa ao PHP, verifique se ela de fato
* chegou.
*/
if ( isset( $_POST[ 'id_do_aluno' ] ) ){
$post_pagar = $_POST[ 'id_do_aluno' ];

/**
 * NUNCA utilize o valor de uma variável externa ao PHP sem antes verificar se o conteúdo
 * dela é aquilo que você está esperando.
 */
if ( !filter_var( $post_pagar , FILTER_VALIDATE_INT ) ){
	echo 'Estamos esperando um número inteiro...';
} else {
	$pega_aluno = mysql_query( "SELECT `id`,`nome`,date_add(`data_ven` , INTERVAL 1 MONTH ) 'data_ven' FROM aluno WHERE id = $post_pagar" );

	/**
	 * JAMAIS assuma que tudo está bem, algumas vezes uma queda do servidor de banco de dados
	 * poderá causar um erro na sua aplicação e poderá comprometer seriamente sua segurança.
	 */
	if ( $pega_aluno !== false ){
		while( ( $nomes = mysql_fetch_array( $pega_aluno ) ) !== false ){
			$id_aluno = $nomes[ 'id' ];
			$nome_aluno = $nomes[ 'nome' ];
			$data_venci = $nomes[ 'data_ven' ];
		}
	} else {
		echo 'Falha ao recuperar os dados, tente novamente...';
	}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posta o que você ta fazendo espertao!

 

Me descupe mais deu certo usando a função do MYSQL

SELECT `id`,`nome`,date_add(`data_ven` , INTERVAL 1 MONTH ) 'data_ven' FROM aluno

Me descupe!!!!!!!!!!!!!

Tudo Ok!!!

Resolvido

 

P.S.

Mais ainda ficarei com duvida, como usar date corretamento no PHP.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma abordagem, é que fim do ano passado estavamos trabalhando em cima de segurança em uma aplicação.

 

No caso de operadores !== false ou !== true sempre retornará verdadeiro.

 

o correto neste caso é

 

if ( $pega_aluno != false )

Mas é um bom tuto em relação a segurança!

Compartilhar este post


Link para o post
Compartilhar em outros sites

No caso de operadores !== false ou !== true sempre retornará verdadeiro.

Cuidado amigo, essa afirmação é falsa.

 

$teste1 = 0;
$teste2 = '';
$teste3 = null;
$teste4 = false;

var_dump( $teste1 != false );
var_dump( $teste2 != false );
var_dump( $teste3 != false );
var_dump( $teste4 != false );

 

Quando é feita uma operação relacional onde um dos valores é um booleano o PHP faz o CAST automático para booleano.

 

A saída do fragmento acima é:

bool(false)

bool(false)

bool(false)

bool(false)

 

Isso porque de fato, quando é feito o cast, todos os valores são convertidos para false. Porém, o fragmento abaixo:

 

$teste1 = 0;
$teste2 = '';
$teste3 = null;
$teste4 = false;

var_dump( $teste1 !== false );
var_dump( $teste2 !== false );
var_dump( $teste3 !== false );
var_dump( $teste4 !== false );

 

O operador !== faz a comparação literal, sem CAST:

bool(true)

bool(true)

bool(true)

bool(false)

 

Como pode ver, com exceção do $teste4, todos os valores são realmente diferentes de false.

 

mysql_query http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br2.php.net/manual/en/function.mysql-query.php

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

 

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

 

 

mysql_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query.

 

 

 

mysql_fetch_array http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br2.php.net/manual/en/function.mysql-fetch-array.php

 

 

 

Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows.

 

 

 

Como as funções mysql_query e mysql_fetch_array retornam um false em caso de falha, a comparação !== false é correta.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu fera você esta certo, em outro forum quando fiquei com essa dúvida me responderam completamente diferente.

Não me disseram sobre a comparação literal, sem CAST:

 

Valeu http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.