joaocasta Posted August 9, 2012 at 01:00 PM Report Share #471823 Posted August 9, 2012 at 01:00 PM Tenho aqui este código, que na tabela deveria mostrar-me o "Referente" como o que eu inseri na base de dados, mas isso não acontece. <?php require_once "config.php"; require_once "funcoes.php"; error_reporting (E_ALL ^ E_NOTICE); if (!empty($_POST['receitadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); if ($receita == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO receitas_valores (id_utilizador, `receita`, `data`, `id_referente_receita` ) VALUES('$id_utilizador', '$receita', '$data', '$id_referente')") or die(mysql_error()); } } } if (!empty($_POST['despesadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $despesa = ($_POST['despesa']); $id_referente = ($_POST['selector']); if ($despesa == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO despesas_valores (id_utilizador, `despesa`, `data`, `id_referente_despesa` ) VALUES('$id_utilizador', '$despesa', '$data', '$id_referente')") or die(mysql_error()); } } } ?> <form method="POST" action=""> <p align="center"><font color="#008000" size="2">Receita </font><input type="text" name="receita" size="11" > <?php $q = 'SELECT id, receita FROM receitas'; $result = mysql_query($q); echo '<select name="referente">'; $c=''; while ($row = mysql_fetch_array($result)) { echo '<option value="'.$row['id'].'">'.$row['receita'].'</option>'; } echo '</select>'; ?></p><input type="submit" name="receitadinheiro" value="Adicionar" name="B1"><input type="reset" value="Apagar" name="B2"> </form> <form method="POST" action=""> <p align="center"><font size="2" color="#FF0000">Despesa <input type="text" name="despesa" size="11"> <?php $q = 'SELECT id, despesa FROM despesas'; $result = mysql_query($q); echo '<select name="selector">'; $c=''; while ($row = mysql_fetch_array($result)) { echo '<option value="'.$row['id'].'">'.$row['despesa'].'</option>'; } echo '</select>'; ?> </font></p> <p align="center"> </p> <p align="center"><input type="submit" name="despesadinheiro" value="Adicionar" name="B3"><input type="reset" value="Apagar" name="B4"> </p> </form> <p> </td> </tr> </table> <table border="1" width="71%" bordercolorlight="#000000" cellspacing="0" cellpadding="0"> <tr> <td width="127"><font size="1"><b><font color="#008000">Saldo actual -</font></b> <?php echo $saldoactual; ?>€</font></td> <td width="140"><font size="1" color="#008000">Receitas </font> <font size="1"><font color="#008000"></font> - <?php echo $receita;?>€</font></td> <td width="176"><font size="1"><font color="#FF0000">Despesas </font> - <?php echo $despesa; ?>€</font></td> </tr> </table> <p> </p> <p><b><font size="2">Estrato de valores adicionados</font></b></p> <table border="1" width="96%" bordercolorlight="#000000" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF"> <tr> <td align="center" width="67"><font size="2">Data</font><p> <font size="2">--------------</font></p> <p><font size="2" color="#008000"><?php echo $data;?></font></p></td> <?php echo $receita; ?> <?php echo $despesa; ?> Referente: <?php echo "" . obter_nome_referente($row['id_referente']) . "" ?> Modalidade: </tr> </table> <?php $sql = "SELECT despesa, id_utilizador, data, id_referente_despesa FROM despesas_valores"; $result = mysql_query($sql); echo "<table border='1' cellspacing='0' align='center'>"; echo "<tr class='reservas'> <th>Modalidade</th> <th>Data</th> <th>Referente</th> <th>Valor</th> </tr>"; while($row = mysql_fetch_array($result)) { $saldo_actual = $row['receita'] - $row['despesa']; echo "<tr><td>"; echo $row['id']; echo "</td>"; echo "<td>"; echo $row['data']; echo "</td>"; echo "<td>"; echo "" . obter_nome_referente($row['id_referente_despesa']) . ""; echo "</td>"; echo "<td>"; echo $row['despesa']; echo "</td></tr>"; } echo "</table>"; ?> Por exemplo eu escolho no "select option" a opção carro e ele insere correctamente o id do carro na base de dados, só não aparece correctamente na tabela. É esta parte do codigo que penso estar incorrecta: <?php $sql = "SELECT despesa, id_utilizador, data, id_referente_despesa FROM despesas_valores"; $result = mysql_query($sql); echo "<table border='1' cellspacing='0' align='center'>"; echo "<tr class='reservas'> <th>Modalidade</th> <th>Data</th> <th>Referente</th> <th>Valor</th> </tr>"; while($row = mysql_fetch_array($result)) { $saldo_actual = $row['receita'] - $row['despesa']; echo "<tr><td>"; echo $row['id']; echo "</td>"; echo "<td>"; echo $row['data']; echo "</td>"; echo "<td>"; echo "" . obter_nome_referente($row['id_referente_despesa']) . ""; echo "</td>"; echo "<td>"; echo $row['despesa']; echo "</td></tr>"; } echo "</table>"; agradecia a ajuda de todos obrigado! 😉 Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:17 PM Report Share #471829 Posted August 9, 2012 at 01:17 PM e onde está esta função : obter_nome_referente($row['id_referente_despesa']) IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 01:18 PM Author Report Share #471830 Posted August 9, 2012 at 01:18 PM na pagina funcoes.php <?php // num ficheiro de funções podes criar uma função que obtenha o nome do utilizador para nao estares a repetir codigo! function obter_nome_referente( $id ){ $sql = "SELECT despesas.despesa FROM despesas_valores inner join despesas on despesas_valores.id_referente_despesa = despesas.id"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)) { return $row['despesa']; } } ?> Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:24 PM Report Share #471831 Posted August 9, 2012 at 01:24 PM (edited) este é o código que popula o teu select : $result = mysql_query('SELECT id, receita FROM receitas'); ... while ($row = mysql_fetch_array($result)) echo '<option value="'.$row['id'].'">'.$row['receita'].'</option>'; e este é o código que tens para ler a base de dados function obter_nome_referente( $id ){ $rs = mysql_query("SELECT despesas.despesa FROM despesas_valores inner join despesas on despesas_valores.id_referente_despesa = despesas.id"); $row = mysql_fetch_array($rs); return $row['despesa']; } isso para não falar que nem sequer usas o argumento da função ($id) !!! alhos e bugalhos não são a mesma coisa ... Edited August 9, 2012 at 01:24 PM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 01:26 PM Author Report Share #471832 Posted August 9, 2012 at 01:26 PM nao reparaste mas eu tenho isto também: <?php $q = 'SELECT id, despesa FROM despesas'; $result = mysql_query($q); echo '<select name="selector">'; $c=''; while ($row = mysql_fetch_array($result)) { echo '<option value="'.$row['id'].'">'.$row['despesa'].'</option>'; } echo '</select>'; ?> Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:30 PM Report Share #471833 Posted August 9, 2012 at 01:30 PM eu vi bem ... tu é que estás a fazer confusão: if($_SERVER['REQUEST_METHOD'] == 'POST'){ $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); // <---------- qual o nome do input ?? } ... $result = mysql_query('SELECT id, receita FROM receitas'); echo '<select name="referente">'; // <---------- qual o nome do input ?? ... $result = mysql_query('SELECT id, despesa FROM despesas'); echo '<select name="selector">'; // <---------- qual o nome do input ?? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 01:33 PM Author Report Share #471834 Posted August 9, 2012 at 01:33 PM eu vi bem ... tu é que estás a fazer confusão: if($_SERVER['REQUEST_METHOD'] == 'POST'){ $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); // <---------- qual o nome do input ?? } ... $result = mysql_query('SELECT id, receita FROM receitas'); echo '<select name="referente">'; // <---------- qual o nome do input ?? ... $result = mysql_query('SELECT id, despesa FROM despesas'); echo '<select name="selector">'; // <---------- qual o nome do input ?? Não percebi qual foi o problema. nome do input num é "referente" noutro é "selector". Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:40 PM Report Share #471835 Posted August 9, 2012 at 01:40 PM e qual deles é gravado na base de dados ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 01:41 PM Author Report Share #471836 Posted August 9, 2012 at 01:41 PM os dois, só que eu gostava de saber tambem alguma maneira de como fazer as duas funcoes da despesa e da receita. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 01:50 PM Report Share #471837 Posted August 9, 2012 at 01:50 PM os dois, só que eu gostava de saber tambem alguma maneira de como fazer as duas funcoes da despesa e da receita. estás mesmo a guardar os dois ? //guarda os dados em variáveis $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); mysql_query("INSERT INTO receitas_valores (id_utilizador, `receita`, `data`, `id_referente_receita` ) VALUES('$id_utilizador', '$receita', '$data', '$id_referente')"); diz no código acima onde estás a gravar a informação do input "selector" ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 01:55 PM Author Report Share #471840 Posted August 9, 2012 at 01:55 PM no codigo acima nao está mas esta aqui: if (!empty($_POST['despesadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $despesa = ($_POST['despesa']); $id_referente = ($_POST['selector']); if ($despesa == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO despesas_valores (id_utilizador, `despesa`, `data`, `id_referente_despesa` ) VALUES('$id_utilizador', '$despesa', '$data', '$id_referente')") or die(mysql_error()); } } } Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:00 PM Report Share #471844 Posted August 9, 2012 at 02:00 PM nesse caso diz onde estás a gravar a informação do input "referente" ??? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 02:04 PM Author Report Share #471846 Posted August 9, 2012 at 02:04 PM (edited) if (!empty($_POST['receitadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); if ($receita == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO receitas_valores (id_utilizador, `receita`, `data`, `id_referente_receita` ) VALUES('$id_utilizador', '$receita', '$data', '$id_referente')") or die(mysql_error()); } } aí Edited August 9, 2012 at 02:04 PM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:07 PM Report Share #471848 Posted August 9, 2012 at 02:07 PM afinal qual é !!!! esta if (!empty($_POST['receitadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $receita = ($_POST['receita']); $id_referente = ($_POST['referente']); if ($receita == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO receitas_valores (id_utilizador, `receita`, `data`, `id_referente_receita` ) VALUES('$id_utilizador', '$receita', '$data', '$id_referente')") or die(mysql_error()); } } } ou if (!empty($_POST['despesadinheiro'])) { if($_SERVER['REQUEST_METHOD'] == 'POST'){ //guarda os dados em variáveis $despesa = ($_POST['despesa']); $id_referente = ($_POST['selector']); if ($despesa == "" && $id_referente == "") { echo ""; } else { $id_utilizador = (int)$_SESSION['id']; $data = date('d/m/Y'); $sql = mysql_query("INSERT INTO despesas_valores (id_utilizador, `despesa`, `data`, `id_referente_despesa` ) VALUES('$id_utilizador', '$despesa', '$data', '$id_referente')") or die(mysql_error()); } } } IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 02:10 PM Author Report Share #471849 Posted August 9, 2012 at 02:10 PM (edited) esses dois codigos sao de inputs diferentes. Edited August 9, 2012 at 02:11 PM by joaocasta Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:14 PM Report Share #471851 Posted August 9, 2012 at 02:14 PM input's ou páginas ?? input é um elemento que guarda um valor a ser enviado para o servidor dentro de um formulário ... IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 02:15 PM Author Report Share #471852 Posted August 9, 2012 at 02:15 PM inputs. o valor enviado está correcto. o problema é ao mostrar. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:19 PM Report Share #471853 Posted August 9, 2012 at 02:19 PM sem saber que elemento deve ser apresentado "referente" ou "selector" como achas que a função "obter_nome_referente" pode fazer sentido ?? <?php // num ficheiro de funções podes criar uma função que obtenha o nome do utilizador para nao estares a repetir codigo! function obter_nome_referente( $id ){ $sql = "SELECT despesas.despesa FROM despesas_valores inner join despesas on despesas_valores.id_referente_despesa = despesas.id"; $rs = mysql_query($sql); while($row = mysql_fetch_array($rs)) { return $row['despesa']; } } ?> IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
joaocasta Posted August 9, 2012 at 02:21 PM Author Report Share #471854 Posted August 9, 2012 at 02:21 PM eu nao sei como fazer isso na função, mas eu devo ter de precisar 2 funções para poder apresentar os dois tipos (receita e despesa) Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted August 9, 2012 at 02:26 PM Report Share #471858 Posted August 9, 2012 at 02:26 PM não só tens de saber a que tabela tens de ler como tens de usar o $id a ser lido, o sql que tens dentro da função não faz sentido IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now