Foros del Web » Programando para Internet » PHP »

Sistema de control de gastos con una falla

Estas en el tema de Sistema de control de gastos con una falla en el foro de PHP en Foros del Web. Estimados, Estoy desarrollando un sistema de control de gastos, hice una funcion que generará categorías y otra que generá unos items para cada categoría, el ...
  #1 (permalink)  
Antiguo 13/04/2008, 21:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Sistema de control de gastos con una falla

Estimados,
Estoy desarrollando un sistema de control de gastos, hice una funcion que generará categorías y otra que generá unos items para cada categoría, el problema que se me presenta es que no puedo insertar la función como parte de la tabla para que se vea mas ordenado el formulario de envio.

Les envio el codigo, en rojo esta la función, el llamado a la misma y donde quiero que vaya.

<html>
<head>
<title>CONTROL DE GASTOS</title>
<script type="text/javascript" src="select_dependientes.js"></script>
<script language="javascript" type="text/javascript" src="seleccionafecha.js"></script>
</head>
<body>
<p>
<tr><td>&nbsp;</td>
<td> <?php generaCategorias();?>
</p>
<p>
<?php
function generaCategorias()
{
include 'conexion.php';
conectar();
$consulta=mysql_query("SELECT id, opcion FROM categoria");
desconectar();

// Voy imprimiendo el primer select compuesto por los paises
echo "<select name='categorias' id='categorias' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
while($registro=mysql_fetch_row($consulta))
{
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
}
echo "</select>";
}

?>
</p>
<p> <?php
$dp=mysql_connect("localhost", "root", "");
mysql_select_db("gastos", $dp);


if (isset($_POST['submit'])){
if (empty($_POST['monto'])){
echo "Debe ingresar el item.";
} else if (strlen($_POST['fecha'])<1) {
echo "El monto debe estar ingresado.";
} else {

$sql = "INSERT INTO insertagastox| (id, items, categorias, monto, fecha) VALUES ('$_POST[id]', '$_POST[items]', '$_POST[categorias]', '$_POST[monto]', '$_POST[fecha]')";

$resultado= mysql_query($sql);
if ($resultado){
echo "Datos fueron ingresados";
}else{
echo "Los datos <b>no</b> fueron agregados.";
}
}

echo "<br><br>";
echo "<a href='javascript:history.back()'>Volver</a> - <a href='$_SERVER[PHP_SELF]'> Introducir nuevo gasto</a>";
}else{

$sql2 = "select * from item";
$resultado2 = mysql_query($sql2);
$campoitem="";

while ($row = mysql_fetch_assoc($resultado2)){
$campoitem .= "<option value='$row[id]'>$row[nombreitem]</option>\n";
}

echo <<<FORMULARIO
<form action="{$_SERVER[PHP_SELF]}" method="post">
<table>
AQUI QUIERO QUE VAYA ESE COMBOBOX DE LA FUNCION "generaCategoria"
<tr><td>ITEM:</td><td><select disabled="disabled" name="items" id="items"><option value="0">Selecciona opci&oacute;n...</option></select>
<tr><td>MONTO:</td><td><input type="text" name="monto"></td></tr>
<tr><td>FECHA GASTO:</td><td><input name="fecha" type="text" size="25"><a href="javascript:NewCal('fecha','ddmmyyyy')">Selec cione fecha</a></td></tr>
</td></tr>
<tr><td></td><td><input type="submit" value="Introducir Gasto" name ="submit"></td></tr>
</table>
</form>
FORMULARIO;
mysql_close($dp);
}
?>
<p>&nbsp;</p>
<p><a href="vertodos.php">ver gastos </a></p>

Gracias nuevamente
  #2 (permalink)  
Antiguo 14/04/2008, 01:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Re: Sistema de control de gastos con una falla

primero... no puedes llamar un funcion no declarada anteriormente <generaCategorias()>
curiosamente donde kieres ke "funcione" esta funcion, no la pones....

osea, donde pones AKI KIERO... ahi si va el <?php generaCategorias(); ?> y donde lo pusiste antes, no va... ya ke no la has declarado (antes)

o ke no te funciona?
  #3 (permalink)  
Antiguo 14/04/2008, 09:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Cita:
Iniciado por pateketrueke Ver Mensaje
primero... no puedes llamar un funcion no declarada anteriormente <generaCategorias()>
curiosamente donde kieres ke "funcione" esta funcion, no la pones....

osea, donde pones AKI KIERO... ahi si va el <?php generaCategorias(); ?> y donde lo pusiste antes, no va... ya ke no la has declarado (antes)

o ke no te funciona?
Efectivamente la puse ahi para probar, pero el codigo php no funciona, es decir el "<?php" no aparece en rojo y "?>" me aparece en rojo, estoy ocupando dreamweaver para el codigo.

Gracias nuevamente
  #4 (permalink)  
Antiguo 14/04/2008, 10:33
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Sistema de control de gastos con una falla

prueba así en donde deseas que aparesca el combobox:

Código PHP:
<?php echo generaCategorias();?>

Saludos.
  #5 (permalink)  
Antiguo 14/04/2008, 11:14
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Cita:
Iniciado por Carlojas Ver Mensaje
prueba así en donde deseas que aparesca el combobox:

Código PHP:
<?php echo generaCategorias();?>

Saludos.
echo <<<FORMULARIO
<form action="{$_SERVER[PHP_SELF]}" method="post">
<table>
<?php echo generaCategorias();?> <tr><td>ITEM:</td><td><select disabled="disabled" name="items" id="items"><option value="0">Selecciona opci&oacute;n...</option></select>
<tr><td>MONTO:</td><td><input type="text" name="monto"></td></tr>
<tr><td>FECHA GASTO:</td><td><input name="fecha" type="text" size="25"><a href="javascript:NewCal('fecha','ddmmyyyy')">Selec cione fecha</a></td></tr>
</td></tr>
<tr><td></td><td><input type="submit" value="Introducir Gasto" name ="submit"></td></tr>
</table>
</form>
FORMULARIO;
mysql_close($dp);
}
?>

Si te refieres a esto, no funciona, no toma el primer caracter "<?php"
Que hago?
  #6 (permalink)  
Antiguo 14/04/2008, 20:59
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Ayuda por favor!!!
  #7 (permalink)  
Antiguo 15/04/2008, 00:57
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Sistema de control de gastos con una falla

Cita:
primero... no puedes llamar un funcion no declarada anteriormente <generaCategorias()>
Puedes hacer un llamado a una funcion y declarar esa misma función al fnal de la hoja que va a funcionar bien. PHP levanta todo el código antes de ejecutarlo.
Ojo con eso...
  #8 (permalink)  
Antiguo 15/04/2008, 01:03
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Sistema de control de gastos con una falla

Qué es lo que hace la función desconectar() ??

Porque más abajo ejecutas

Código PHP:
mysql_close($dp); 
Ahi puede estar el error, cuidado....
  #9 (permalink)  
Antiguo 15/04/2008, 10:02
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

usermax,
Probé lo que me dijiste pero no es eso, la función esta ok, aparece, lo que necesito es que el combobox (la cual tiene la funcion) me aparezca en la tabla.
Envio foto para que quede mas claro.

http://img237.imageshack.us/img237/1123/controldegastoconfallaslf1.png
  #10 (permalink)  
Antiguo 15/04/2008, 10:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Ayuda por favor!!
  #11 (permalink)  
Antiguo 15/04/2008, 21:07
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Necesito vuestra ayuda señores por favor.
  #12 (permalink)  
Antiguo 16/04/2008, 21:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Quien será la buena persona que me pueda ayudar
  #13 (permalink)  
Antiguo 17/04/2008, 20:31
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Que pasa con mis amigos... no hay ayuda...
Agradecere ayuda lo antes posible

http://img237.imageshack.us/img237/1...nfallaslf1.png
  #14 (permalink)  
Antiguo 18/04/2008, 09:50
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Sistema de control de gastos con una falla

Hola Sebastián,

Vamos a ver si resolvemos esto.

Primero, no puedes tener tan mezclado el html con el php, es un lio bárbaro. Declara las funciones por separado e intenta limpiar lo más posible el código.

Mirá, cuando vas a imprimir en pantalla directamente un código html, no conviene que lo hagas así

echo "<table><th><td>";

porque en la vista previa del editor web no puedes ver el resultado.
Tu estas pidiendo ayuda pero es muy dificil ver donde puede estar el error de la ubicación html de la función. Y ame hice lio?

Conviene imprimir el html así

Código PHP:
<?php
 
// funcionhes codigo blablabla
 
?>
<table><tr><td>
<?php
// mas codigo
?>
De esa manera puedes ver exactamente cómo va quedando.

Fue eso lo que yo hice con tu código y simplemente /despues de esto) cambie de posición la llamada a la funcion que genera tus categorías.


Código PHP:
<html>
<head>
<title>CONTROL DE GASTOS</title>
<script type="text/javascript" src="select_dependientes.js"></script>
<script language="javascript" type="text/javascript" src="seleccionafecha.js"></script>
</head>
<body>
<?php
function generaCategorias()
{
include 
'conexion.php';
conectar();
$consulta=mysql_query("SELECT id, opcion FROM categoria");
desconectar();
// Voy imprimiendo el primer select compuesto por los paises
?>
<select name='categorias' id='categorias' onChange='cargaContenido(this.id)'>
<option value='0'>Elige</option>
<?
while($registro=mysql_fetch_row($consulta))
{
?>
<option value='<?= $registro[0?>'><?= $registro[1?></option>";
<?
}
?>
</select>
<?
}
?>
</p>
<p> <?php
$dp
=mysql_connect("localhost""root""");
mysql_select_db("gastos"$dp);
 
if (isset(
$_POST['submit'])){
if (empty(
$_POST['monto'])){
echo 
"Debe ingresar el item.";
} else if (
strlen($_POST['fecha'])<1) {
echo 
"El monto debe estar ingresado.";
} else {
$sql "INSERT INTO insertagastox| (id, items, categorias, monto, fecha) VALUES ('$_POST[id]', '$_POST[items]', '$_POST[categorias]', '$_POST[monto]', '$_POST[fecha]')";
$resultadomysql_query($sql);
if (
$resultado){
echo 
"Datos fueron ingresados";
}else{
echo 
"Los datos <b>no</b> fueron agregados.";
}

?>
<br><br>
<a href='javascript:history.back()'>Volver</a> - <a href='<?= $_SERVER[PHP_SELF?>'> Introducir nuevo gasto</a>
<?
}else{
$sql2 "select * from item";
$resultado2 mysql_query($sql2);
$campoitem="";
while (
$row mysql_fetch_assoc($resultado2)){
?><option value='<?= $row[id?>'><?= $row[nombreitem?></option>
<?
}
?>
<form action="<?= $_SERVER[PHP_SELF?>" method="post">
<table>
AQUI QUIERO QUE VAYA ESE COMBOBOX DE LA FUNCION "generaCategoria"
<tr>
  <td>CATEGORIA</td>
  <td><?php generaCategorias();?>
<tr><td>ITEM:</td><td><select disabled="disabled" name="items" id="items"><option value="0">Selecciona opci&oacute;n...</option></select>
<tr><td>MONTO:</td><td><input type="text" name="monto"></td></tr>
<tr><td>FECHA GASTO:</td><td><input name="fecha" type="text" size="25"><a href="javascript:NewCal('fecha','ddmmyyyy')">Selec cione fecha</a></td></tr>
</td></tr>
<tr><td></td><td><input type="submit" value="Introducir Gasto" name ="submit"></td></tr>
</table>
</form>
FORMULARIO;
<?
}
?>
<p>&nbsp;</p>
<p><a href="vertodos.php">ver gastos </a></p>
Lo pruebas y me cuentas
Saludos
  #15 (permalink)  
Antiguo 18/04/2008, 10:19
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Sistema de control de gastos con una falla

y?? lo probaste?...
  #16 (permalink)  
Antiguo 18/04/2008, 10:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 77
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Sistema de control de gastos con una falla

Cita:
Iniciado por usermax Ver Mensaje
y?? lo probaste?...
En eso estoy, funcione o no te aviso.
Gracias nuevamente
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:26.