Ir para conteúdo

POWERED BY:

Arquivado

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

magnetu

[Resolvido] Concatenar 3 campos Dia-Mes-Ano

Recommended Posts

Galera sou novo aqui, tenho lido bastante as ajudas porem não consegui encontrar nada que pudesse me ajudar num ponto.

 

Fiz um sistema de cadastro que utiliza 3 combobox um para dia, um para mes, e outro para ano, porem no banco de dados ele esta mostrando apenas o ano, gostaria de saber onde estou errando na hora de juntar os 3 ou melhor no código pois pelo que percebi ele so esta pegando um campo ao invez de somar os 3, ele puxa somente o o ano e ignora o dia e o mes.

 

Vou explicar melhor

 

São 4 tabelas

a principal onde tem o campo usoData e 3 secundarias que são user_dia, user_mes, user_ano, esta 3 são os combobox, desculpe se não soube me expressar com os termos técnicos mas faz 2 semanas apenas que comecei a mexer com php então não conheço quase nada.

 

 

 

 




<select name="usoData">
       <?php
do {  
?>
       <option value="<?php echo $row_user_dia['dia']?>"><?php echo $row_user_dia['dia']?></option>
       <?php
} while ($row_user_dia = mysql_fetch_assoc($user_dia));
 $rows = mysql_num_rows($user_dia);
 if($rows > 0) {
     mysql_data_seek($user_dia, 0);
  $row_user_dia = mysql_fetch_assoc($user_dia);

 }

?>

     </select>

     <select name="usoData">
       <?php
do {  
?>
       <option value="<?php echo $row_user_mes['mes']?>"><?php echo $row_user_mes['mes']?></option>
       <?php
} while ($row_user_mes = mysql_fetch_assoc($user_mes));
 $rows = mysql_num_rows($user_mes);
 if($rows > 0) {
     mysql_data_seek($user_mes, 0);
  $row_user_mes = mysql_fetch_assoc($user_mes);
 }
?>
     </select>

     <select name="usoData">
       <?php
do {  
?>
       <option value="<?php echo $row_user_ano['ano']?>"><?php echo $row_user_ano['ano']?></option>
       <?php
} while ($row_user_ano = mysql_fetch_assoc($user_ano));
 $rows = mysql_num_rows($user_ano);
 if($rows > 0) {
     mysql_data_seek($user_ano, 0);
  $row_user_ano = mysql_fetch_assoc($user_ano);
 }
?>
     </select>

 

 

 

No banco so aparece o ano e ignora as duas primeiras datas....

 

Vlw pela força

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, pra que isso?

 

Aí você perde toda a facilidade que o MySQL te oferece ao trabalhar com datas.

O que você deve fazer criar um campo só para a data, do tipo DATE e ao inserir os dados vindos do formulário, fazer a concatenação no formato 'ANO-MES-DIA' para salvá-la no banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como é o select que você está usando nas consultas?

 

bom dia

Então eu não sei o que significa o select, mas vou tentar explicar como que fiz, criei tres tabelas no bd, dia mes e ano, e uma outra tabela user, dentro da tabela user eu tenho todos os dados de cadastro inclusive o usoData, que é onde eu puxo as consultas, essas 3 consultas estão sendo puxadas como pode ver para dentro do usoData porem somente o ano esta aparecendo parece ignorar o dia e mes... por isso pensei em concatenar no php ou sql para transformar os 3 dados em um só...

 

Rapaz, pra que isso?

 

Aí você perde toda a facilidade que o MySQL te oferece ao trabalhar com datas.

O que você deve fazer criar um campo só para a data, do tipo DATE e ao inserir os dados vindos do formulário, fazer a concatenação no formato 'ANO-MES-DIA' para salvá-la no banco.

 

 

Bom dia, seria também uma saida porem estou deixando ela em segundo plano pois gostaria de fazer da maneira acima caso não consiga vou partir para esse processo..

 

Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera consegui resolver uma parte mas agora travou em outra

 

esta retornando esta messagem de um campo que não quero utilizar ele so será utilizado no sql onde eu vou concatenar os 3 campos e ele sera o campo que irá receber as informações de concatenação

 

segue o erro

 

Column 'usoData' cannot be null

 

tentei usar o codigo abaixo para preencher o campo usoData mas continua com mesmo erro

 


<input type="hidden" name="usoData" value="<?php $sql = 'UPDATE user SET usoData = concat(usoDia, '-', usoMes, '-', usoAno)';?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido

 

consegui fazer a 3 datas

juntar as tres num campo apenas com concat executando a funçao no php segue abaixo o codigo pra quem interessar.

 

Não esquecendo que o campo que voce quer concatenar tem de estar como nulo no meu caso "usoData".

 

o restante vcs que ja mexem a mais tempo que eu sabem identificar.

 

<?php require_once('Connections/conexao.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $insertSQL = sprintf("INSERT INTO `user` (usoNome, usoEndereco, usoBairro, usoCidade, usoEstado, usoCEP, usoTelefone, usoData, usoDia, usoMes, usoAno, usoSexo, usoEmail, usoSenha, usoCodigo) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                      GetSQLValueString($_POST['usoNome'], "text"),
                      GetSQLValueString($_POST['usoEndereco'], "text"),
                      GetSQLValueString($_POST['usoBairro'], "text"),
                      GetSQLValueString($_POST['usoCidade'], "text"),
                      GetSQLValueString($_POST['usoEstado'], "text"),
                      GetSQLValueString($_POST['usoCEP'], "text"),
                      GetSQLValueString($_POST['usoTelefone'], "int"),
                      GetSQLValueString($_POST['usoData'], "text"),
                      GetSQLValueString($_POST['usoDia'], "text"),
                      GetSQLValueString($_POST['usoMes'], "text"),
                      GetSQLValueString($_POST['usoAno'], "text"),
                      GetSQLValueString($_POST['usoSexo'], "text"),
                      GetSQLValueString($_POST['usoEmail'], "text"),
                      GetSQLValueString(md5($_POST['usoSenha']), "text"),
                      GetSQLValueString($_POST['usoCodigo'], "text"));

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 $insertGoTo = "login.php";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}

mysql_select_db($database_conexao, $conexao);
$query_user_estado = "SELECT * FROM user_estado";
$user_estado = mysql_query($query_user_estado, $conexao) or die(mysql_error());
$row_user_estado = mysql_fetch_assoc($user_estado);
$totalRows_user_estado = mysql_num_rows($user_estado);

mysql_select_db($database_conexao, $conexao);
$query_user_dia = "SELECT * FROM user_dia";
$user_dia = mysql_query($query_user_dia, $conexao) or die(mysql_error());
$row_user_dia = mysql_fetch_assoc($user_dia);
$totalRows_user_dia = mysql_num_rows($user_dia);

mysql_select_db($database_conexao, $conexao);
$query_user_mes = "SELECT * FROM user_mes";
$user_mes = mysql_query($query_user_mes, $conexao) or die(mysql_error());
$row_user_mes = mysql_fetch_assoc($user_mes);
$totalRows_user_mes = mysql_num_rows($user_mes);

mysql_select_db($database_conexao, $conexao);
$query_user_ano = "SELECT * FROM user_ano";
$user_ano = mysql_query($query_user_ano, $conexao) or die(mysql_error());
$row_user_ano = mysql_fetch_assoc($user_ano);
$totalRows_user_ano = mysql_num_rows($user_ano);

mysql_select_db($database_conexao, $conexao);
$query_uso_data = "SELECT usoData FROM `user`";
$uso_data = mysql_query($query_uso_data, $conexao) or die(mysql_error());
$row_uso_data = mysql_fetch_assoc($uso_data);
$totalRows_uso_data = mysql_num_rows($uso_data);

mysql_select_db($database_conexao, $conexao);
$query_usoData = "SELECT CONCAT(usoDia,'/',usoMes,'/', usoAno) AS usoData FROM user";
$usoData = mysql_query($query_usoData, $conexao) or die(mysql_error());
$row_usoData = mysql_fetch_assoc($usoData);
$totalRows_usoData = mysql_num_rows($usoData);
?>
<!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>
</head>

<body>
<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
 <table align="center">
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoNome:</td>
     <td><input type="text" name="usoNome" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoEndereco:</td>
     <td><input type="text" name="usoEndereco" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoBairro:</td>
     <td><input type="text" name="usoBairro" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoCidade:</td>
     <td><input type="text" name="usoCidade" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoEstado:</td>
     <td><select name="usoEstado">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_estado['estado']?>" ><?php echo $row_user_estado['estado']?></option>
       <?php
} while ($row_user_estado = mysql_fetch_assoc($user_estado));
?>
     </select></td>
   </tr>
   <tr> </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoCEP:</td>
     <td><input type="text" name="usoCEP" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoTelefone:</td>
     <td><input type="text" name="usoTelefone" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">Data de Nas:</td>
     <td><select name="usoDia">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_dia['dia']?>" ><?php echo $row_user_dia['dia']?></option>
       <?php
} while ($row_user_dia = mysql_fetch_assoc($user_dia));
?>
     </select>
     <select name="usoMes">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_mes['mes']?>" ><?php echo $row_user_mes['mes']?></option>
       <?php
} while ($row_user_mes = mysql_fetch_assoc($user_mes));
?>
     </select>
     <select name="usoAno">
       <?php 
do {  
?>
       <option value="<?php echo $row_user_ano['ano']?>" ><?php echo $row_user_ano['ano']?></option>
       <?php
} while ($row_user_ano = mysql_fetch_assoc($user_ano));
?>
     </select></td>
   </tr>
   <tr> </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoSexo:</td>
     <td><input type="text" name="usoSexo" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoEmail:</td>
     <td><input type="text" name="usoEmail" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right">UsoSenha:</td>
     <td><input type="text" name="usoSenha" value="" size="32" /></td>
   </tr>
   <tr valign="baseline">
     <td nowrap="nowrap" align="right"> </td>
     <td><input type="submit" value="Enviar" /></td>
   </tr>
 </table>  
 <input type="hidden" name="usoData" value="<?php echo $row_usoData['usoData']; ?>" />
 <input type="hidden" name="usoCodigo" value="<?php echo md5(uniqid(microtime()));?>" />
 <input type="hidden" name="MM_insert" value="form1" />
</form>
<p> </p>
</body>
</html>
<?php
mysql_free_result($user_estado);

mysql_free_result($user_dia);

mysql_free_result($user_mes);

mysql_free_result($user_ano);

mysql_free_result($uso_data);

mysql_free_result($usoData);
?>

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.