• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

overkillpt

Ajuda com codigo php

4 mensagens neste tópico

Olá malta , tou aqui com umas dificuldades em PHP vou explicar aquilo que desejo :

1- ) - PARA O INSERIR :

possuo um formulário para inserção de dados neste caso para adicionar uma

intervenção ..

Quando se adiciona uma intervenção desejo que o campo Minutos a Debitar ,

actualize o campo Minutos Gastos numa outra tabela .

E que quando nessa tabela PlanosAssistencia o valor do campo minutos gastos seja igual ou superior ao do campo minutos contratados (dessa tabela ) envie um email ao user=cliente ,a avisar que já foi excedido os minutos contratados . Deverá também ser possivel no formulário um documento para upload

para a Pasta (Docs Solicitados) no Servidor , associado ao campo Solicitação!!

Ok aqui vai a tabela onde o insert será feito :

A tabela Histórico (onde vai ser feita a inserção da intervenção) é

constituída por :

*Idhistorico

-Descricao

-User (Tabela Users) Campo User Id (Este campo deve ser preenchido

através do Session,ou seja vai buscar o user que esta de momento logado á

Session)

-Solicitacao(Ficheiro Upload)

-Minutos Gastos

-Minutos Debitados (FK)(Actualizar campo minutosgastos na tabela

PlanosAssistencia)

Data

Aqui segue o codigo (Atençao nao inclui as chamadas include dos ficheiros de configuraçao e ligacao BD , nem vou colocar aki o form em html )

<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $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"] == "forminserir")) {
if ((!(is_uploaded_file($_FILES['docsolict']['tmp_name']))) || ($_FILES['docsolict']['size']==0)) {
$erro="Tem de fornecer um comprovativo daquilo que foi solicitado a intervir ";} else {
move_uploaded_file($_FILES['docsolict']['tmp_name'],"./Docs Solicitados/".$_FILES['docsolict']['name']);
  $insertSQL = sprintf("INSERT INTO historico (idhistorico, descricao,  solicitacao, minutosgast, minutosdeb, `data`) VALUES (%s, %s, %s, %s, %s, %s)",
                       GetSQLValueString($_POST['idinterv'], "int"),
                       GetSQLValueString($_POST['descricao'], "text"),
                       GetSQLValueString($_FILES['docsolict'] ['name'], "text"),
                       GetSQLValueString($_POST['minutosgast'], "int"),
                       GetSQLValueString($_POST['minutosdeb'], "int"),
                       GetSQLValueString($_POST['data'], "date"));

  mysql_select_db($database_teste, $teste);
  $Result1 = mysql_query($insertSQL, $teste) or die(mysql_error());

  $insertGoTo = "paineladm.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
    $insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}}
?>
No formulario está tambem : <input name="utilizador" type="hidden" id="utilizador" value="<?php echo $_SESSION['MM_Username']; ?>">

O que me falta aqui ??? Para esta situação se resolver ?

- PARA O LISTAR :

Quando se realizar a listagem de uma intervenção irá ser necessário no campo

solicitação que mostre o documento associado disponivel para download .

Obrigado ...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

que confusão ( deve de ser da hora... ) faltam antes de mais muitos selects.... e verificações... algo do genero...

insert into intervenções.....

ultimoInserido = last insert id

Update tempogasto set campos=valores .... where intevençaoid=ultimoInserido

depois... select count(id) as TOTAL from PlanosAssistencia  where minutos > minutosContratados

se TOTAL > 0 entao

enviaEmail...

depois crias um formulario que faz upload e nao sei que mais... etc.... mais alguma duvida?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado ... Penso que assim já esteja bem melhor .... Não conhecia esta opção ..Agradeço

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora