Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando desenvolver o meu primeiro script é uma agenda de eventos, procurei muitas prontas pela internet mas elas não são do jeito que eu queria, então decidi quebrar a cara e começar a criar ao invés de pegar pronto!
A minha dúvida é que tipo de dado usar, pois na home gostaria de colocar os eventos que estão mais próximos de acontecer, ex:
cadastro as seguintes datas: 22/04/12 - 31/03/12 - 07/08/12 - 01/07/12.
Ao invés delas serem listadas na ordem decrescente que seria o inverso disso, ela adotasse a seguinte ordem:
31/03/12 - 22/04/12 - 01/07/12 - 07/08/12
estou listando elas na ordem descrescente com esse código:
$sql = "SELECT * FROM eventos ORDER BY id DESC LIMIT 3";
Gostaria de saber como ordeno pela DATA ao invés do ID, na ordem crescente... no caso de janeiro á dezembro... ao invés de dezembro a janeiro. e que tipo de dados e tamanho utilizo na Data:
Date, DateTime, TimeStamp, Time ou Year?
Alguém poderia me dar um exemplo de código por favor???
Bom dia,
Você pode fazer desta forma:
SQL
$sql = "SELECT * FROM eventos ORDER BY data ASC LIMIT 3";
Neste caso você estaria listando em ordem crescente pela data.
Quanto a data depende o padrão que você pretende adotar, se for neste padrão dia/mes/ano (00/00/0000), pode ser feito assim:
PHP
date("d/m/Y");
Mais opções podem ser vistas no manual do PHP - clique aqui
OBS: Lembrando que as datas são armazenadas no MySQL arbitrariamente desta forma - ano/mes/dia (0000/00/00).
Espero que ajude.
>
Bom dia,Você pode fazer desta forma:SQL
$sql = "SELECT * FROM eventos ORDER BY data ASC LIMIT 3";
Neste caso você estaria listando em ordem crescente pela data.Quanto a data depende o padrão que você pretende adotar, se for neste padrão dia/mes/ano (00/00/0000), pode ser feito assim:PHP
date("d/m/Y");
Mais opções podem ser vistas no manual do PHP - clique aquiOBS: Lembrando que as datas são armazenadas no MySQL arbitrariamente desta forma - ano/mes/dia (0000/00/00).Espero que ajude.
Bem, coloquei como date, agora tenho uma nova dúvida, como escrever a data no meu formulário?
Código do meu formulário
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">div.box {
margin:0 auto;
width:510px;
background:#222222;
position:relative;
top:50px;
border:1px solid #262626;
}
div.box h1 {
color:#ffffff;
font-size:18px;
text-transform:uppercase;
padding:5px 0 5px 5px;
border-bottom:1px solid #161712;
border-top:1px solid #161712;
}
div.box label {
width:100%;
display: block;
background:#1C1C1C;
border-top:1px solid #262626;
border-bottom:1px solid #161712;
padding:10px 0 10px 0;
}
div.box label span {
display: block;
color:#bbbbbb;
font-size:12px;
float:left;
width:110px;
text-align:right;
padding:0 20px 0 0;
}
div.box .input_text {
width:200px;
background:#262626;
border-bottom: 1px double #171717;
border-top: 1px double #171717;
border-left:1px double #333333;
border-right:1px double #333333;
}
div.box .message{
padding:7px 7px;
width:350px;
background:#262626;
border-bottom: 1px double #171717;
border-top: 1px double #171717;
border-left:1px double #333333;
border-right:1px double #333333;
overflow:hidden;
height:50px;
}
div.box .button
{
margin:0 0 10px 0;
padding:4px 7px;
background:#CC0000;
border:0px;
position: relative;
top:10px;
left:370px;
width:120px;
border-bottom: 1px double #660000;
border-top: 1px double #660000;
border-left:1px double #FF0033;
border-right:1px double #FF0033;
}.style6 { font-size: 24px;
font-weight: bold;
}
-->
</style>
</head>
<body><form action="upload.php" method="post" enctype="multipart/form-data">
<div class="box">
<h1><span class="style6">Preencha os campos do evento</span>:</h1>
<label>
<span>Nome do Evento:</span>
<input class="input_text" name="nome" type="text" id="nome"/>
</label>
<label>
<span>Banner do Evento:</span>
<input class="input_text" name="banner" type="file" id="banner" style="style2" /></label>
<label>
<span> Valor:</span>
<input class="input_text" name="valor" type="text" id="valor"/>
</label>
<label>
<span> Data:</span>
<input type="text" class="input_text" name="data" id="data"/>
</label>
<label>
<span> Localização:</span>
<input type="text" class="input_text" name="localizacao" id="localizacao"/>
</label>
<label>
<span> Descrição:</span>
<textarea class="message" name="descricao" id="descricao"></textarea>
<input class="button" type="submit" name="Submit" value="Cadastrar evento"/>
</label>
</div>
</form>
</body>
</html>
codigo do arquivo upload.php
<?
require("conectdb.php");
if(isset($_FILES["banner"])){
$arquivo = $_FILES["banner"];
$pasta_dir = "fotos/";mkdir($pasta_dir);
}
$arquivo_nome = $pasta_dir . $banner["name"];
move_uploaded_file($banner["tmp_name"], $arquivo_nome);
if (isset($_POST['id']))
$id = $_POST['id'];
$nome = $_POST['nome'];
if (isset($_POST['banner']))
$banner = $_POST['banner'];
$valor = $_POST['valor'];
$data = $_POST['data'];
$localizacao = $_POST['localizacao'];
$descricao = $_POST['descricao'];
if(!isset($query))
$query = "INSERT INTO agenda (nome, banner, valor, data, localizacao, descricao) VALUES ('$nome', '$banner', '$valor', '$data', '$localizacao', '$descricao')";
mysql_query($query) or die (mysql_error());
mysql_close();
}
?>
<? echo "<center><font size='3'>O seu evento foi cadastrado com sucesso!";
?>
Alguém pode me ajudar em como modificar e preencher o campo data, de acordo com que eu possa organizar os eventos pela data de forma crescente? e deixar do jeito que eu quero?
No formulário coloque uma máscara para garantir que a entrada sempre seja dd/mm/aaaa, a partir disto no PHP, bastaria:
$data = implode('-',array_reverse(explode('/',$_POST['data'])));
Pronto.
Na hora de ordenar basta char o campo no ORDER BY.
Você só vai precisar da data? Se sim date.