Foros del Web » Programando para Internet » PHP »

Formulario que sume valores [2da duda]

Estas en el tema de Formulario que sume valores [2da duda] en el foro de PHP en Foros del Web. Hola, bueno hace dias busque la forma de hacer un formularios que me sume valores en mysql.. Para no explicar mucho y entender mejor podrian ...
  #1 (permalink)  
Antiguo 19/04/2011, 22:13
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Formulario que sume valores [2da duda]

Hola, bueno hace dias busque la forma de hacer un formularios que me sume valores en mysql..

Para no explicar mucho y entender mejor podrian visitar este tema:

http://www.forosdelweb.com/f18/formulario-que-sume-valores-904598/

Ya tengo el formulario echo, ahora lo que quiero es lo siguiente.. por ejemplo el cliente Jose compro 3 zapatos y los agrego al sistema poniendo:

Cliente: Jose
Articulos: 3

Luego por ejemplo 3 dias depues compra de nuevo el mismo cliente Jose 5 zapatos..

Como hago yo para que en la base de datos no me cree otro usuario llamado Jose pero que si sume los 5 zapatos a los 3 que ya tenia acumulados?

Saludos-.
  #2 (permalink)  
Antiguo 20/04/2011, 00:01
Avatar de C2am  
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: Formulario que sume valores [2da duda]

Hola
Supongo que Jose tendrá en la base de datos un id unico que lo identifique, algo como numero de cliente, o id_cliente, o etc.
En vez de usar jose usa ese identificador unico, y luego solo debes sumar ese par de zapatos en la fila donde el id coincide.
Saludos
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--
  #3 (permalink)  
Antiguo 20/04/2011, 00:14
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por C2am Ver Mensaje
Hola
Supongo que Jose tendrá en la base de datos un id unico que lo identifique, algo como numero de cliente, o id_cliente, o etc.
En vez de usar jose usa ese identificador unico, y luego solo debes sumar ese par de zapatos en la fila donde el id coincide.
Saludos
Hola, si supongo que es asi pero no se como hacer que se sume donde el id coincide.. Esa es la duda que tengo..

Saludos-.
  #4 (permalink)  
Antiguo 20/04/2011, 01:37
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Pues es muy fácil y simplemente se hace con MySQL. Tendrías que hacer un UPDATE de la tabla en cuestión basándote en la ID que tenga cada usuario, que me imagino que será la clave primaria. Luego cuando tengas "seleccionado" a ese cliente simplemente, a una variable en php, que coja el valor de los zapatos que compró y se los sume a lo que ya está. Te voy a hacer un ejemplo un tanto rápido para ver si lo entiendes:

Código PHP:
$identificador = ; // Esta variable contiene el identificador del cliente, lo sacarías mediante un SELECT, pero no se como tienes montado tu sistema ni como tienes organizadas la BD por lo tanto no sabría guiarte.

$cantidad $_POST['cantidadZapatos']; // Esta variable guarda la cantidad de zapatos que compró.

$update mysql_query("UPDATE $tabla SET cantidad_zapatos = cantidad_zapatos + $cantidad WHERE idCliente = $identificador"); 
Y listo. No tendría mucho más misterio. Espero que te haya podido ayudar :) !!

Suerte

PD: si me dices como tienes distribuidas la BD te podré ayudar mejor.
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #5 (permalink)  
Antiguo 20/04/2011, 02:13
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Gracias por la ayuda, te indico..

La Base de datos se llama Compras, La tabla producto y esta asi:


id nombre cantidad
1 Jose 3

Y como la tengo echa, si el usuario jose compra mas zapatos hace lo siguiente

id nombre cantidad
1 Jose 3
2 Jose 5
  #6 (permalink)  
Antiguo 20/04/2011, 02:19
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Porque estás haciendo un insert leyendo los datos que hay y sumándole los nuevos. Lo que tienes que hacer es un UPDATE:

Código PHP:
Ver original
  1. UPDATE producto SET cantidad = cantidad + $cantidadZapatos WHERE id = $identificador

Donde $cantidadZapatos tiene que referenciar al número de zapatos que compró, 3, 4.. el que sea y el $identificador es sacar mediante SELECT el ID que corresponde a ese usuario. Algo como:

Código PHP:
Ver original
  1. SELECT id FROM producto WHERE nombre = "Jose"

Esto te devolvería el identificador, que es único para este usuario, y ya lo podrías usar para hacer un update :) !!

Suerte !!
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #7 (permalink)  
Antiguo 20/04/2011, 09:49
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Muchas gracias, ya entiendo como se hace.. Pero tengo otra duda mas, para seleccionar el nombre se diferencian mayusculas de minusculas o es indiferente?
  #8 (permalink)  
Antiguo 20/04/2011, 09:54
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Formulario que sume valores [2da duda]

por que no lo pruebas tu mismo? esa clase de dudas las reponde uno experimentando, por experiencia propia me parece que en un campo varchar no se distinguen, pero recuerdo haber visto un tipo que si las distinguía.
  #9 (permalink)  
Antiguo 20/04/2011, 10:22
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Ok si ya lo intentete y no los distinge.. pero tengo un problema para creal el $identificador.. Lo intento poner como me explico y de otras formas y siempre me tirar HTTP 500 (Internal Server Error) y no se que estoy haciendo mal...


Estoy intentado que al poner esto

Código PHP:
SELECT id FROM producto WHERE nombre "Jose" 
donde dice nombre= Jose no sea Jose si no que varie segun como lo introduzca el cliente...
  #10 (permalink)  
Antiguo 20/04/2011, 10:40
Avatar de rikardoz  
Fecha de Ingreso: abril-2011
Ubicación: En mi casa
Mensajes: 165
Antigüedad: 13 años
Puntos: 46
Respuesta: Formulario que sume valores [2da duda]

Trata de usar de esta forma:
Cita:
"SELECT id FROM producto WHERE nombre=".$_GET['nombre'].""
  #11 (permalink)  
Antiguo 20/04/2011, 10:46
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Formulario que sume valores [2da duda]

amigo el problema esta en que tu condicion no deberia de ser por el nombre, imagina cuantos jose existen en el mundo inclusive algo con lo que lucho a diario cuantos carlos hay cada vez que dicen carlos en el centro de mi ciudad ya ni volteo porque son muchos los que volteamos, por eso los amigos te indican que busques por el id unico y yo te lo vuelvo a recomendar, de tal manera que no tengas problemas porque no deberian de haber dos iguales, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #12 (permalink)  
Antiguo 20/04/2011, 10:51
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por chemanuel001 Ver Mensaje
Ok si ya lo intentete y no los distinge.. pero tengo un problema para creal el $identificador.. Lo intento poner como me explico y de otras formas y siempre me tirar HTTP 500 (Internal Server Error) y no se que estoy haciendo mal...


Estoy intentado que al poner esto

Código PHP:
SELECT id FROM producto WHERE nombre "Jose" 
donde dice nombre= Jose no sea Jose si no que varie segun como lo introduzca el cliente...

El input type ="text" que name tiene ?? y el form, que method tiene ?? Post o Get ?? O no tiene ?? Si no tiene utiliza POST.

Y luego, como comentó el compañero rikardoz, pero al poner el action en POST en vez de $_GET['nombre'] pon $_POST['nombre']. Como te imaginarás, si no te lo digo yo, "nombre" es el name del input.

Te recomendaría practicar sentencia MySQL desde PhpMyadmin, por ejemplo, antes de ponerla en el código, ya que así comprobarás que , por lo menos, funciona correctamente. Y no, varchar no distingue entre mayúsculas y minúsculas, por lo menos en MySql...

Suerte

PD: me gustaría saber como asocias al usuario "jose" a la hora de comprar zapatos, ya que en esa asociación, ya sea por logueo o por sesión, puedeso obtener el nombre del cliente, y por lo tanto su ID.
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #13 (permalink)  
Antiguo 21/04/2011, 11:48
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Muchas gracias a todos por la ayuda prestada... Todo al principio carga como deberia cargar..

Pero al momento de agregar el Usuario y la cantidad de Zapatos comprados me sale:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM reset WHERE nombre = Jose' at line 1


Y no tengo ni idea como solucionarlo..

Agego el codigo php que le tengo a la pagina:


Código PHP:
<?php

$bd
=mysql_connect("localhost","usuario","123") or die("No se conecto a la base de datos");
mysql_select_db("db2_test");

$opt=$HTTP_GET_VARS["opt"];

if (
$opt==1)
    {
    
$nombre=$HTTP_GET_VARS["nombre"];
    
$cantidad=$HTTP_GET_VARS["cantidad"];
    
$identificador"SELECT id FROM producto WHERE nombre=$nombre";
    
    
$sql"UPDATE producto SET cantidad = cantidad + $cantidad WHERE id=$identificador";
    
$res=mysql_query($sql,$bd) or die (mysql_error());
    }

    
$res2 mysql_query("SELECT SUM(cantidad) as total_suma FROM producto"); 
    
?>

Última edición por chemanuel001; 21/04/2011 a las 11:57
  #14 (permalink)  
Antiguo 21/04/2011, 12:05
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por chemanuel001 Ver Mensaje
Muchas gracias a todos por la ayuda prestada... Todo al principio carga como deberia cargar..

Pero al momento de agregar el Usuario y la cantidad de Zapatos comprados me sale:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id FROM reset WHERE nombre = Jose' at line 1


Y no tengo ni idea como solucionarlo..

Agego el codigo php que le tengo a la pagina:


Código PHP:
<?php

$bd
=mysql_connect("localhost","usuario","123") or die("No se conecto a la base de datos");
mysql_select_db("db2_test");

$opt=$HTTP_GET_VARS["opt"];

if (
$opt==1)
    {
    
$nombre=$HTTP_GET_VARS["nombre"];
    
$cantidad=$HTTP_GET_VARS["cantidad"];
    
$identificador"SELECT id FROM producto WHERE nombre=$nombre";
    
    
$sql"UPDATE producto SET cantidad = cantidad + $cantidad WHERE id=$identificador";
    
$res=mysql_query($sql,$bd) or die (mysql_error());
    }

    
$res2 mysql_query("SELECT SUM(cantidad) as total_suma FROM producto"); 
    
?>
En $identificador, al hacer la consulta, te falta poner un mysql_query, si no, no la realiza.

Por otro lado te recomiendo usar $_GET['nombre_del_campo'] en vez de $HTTP_GET_VARS

Suerte
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #15 (permalink)  
Antiguo 21/04/2011, 12:57
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Por lo visto ya no me da error con comandos.. Pero al intentar agregar me sale esto:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

Esto a que se debe?

Saludos-.

EDITO:

Ya solucione el de arriba... ahora me pasa esto:


Unknown column 'chema' in 'where clause'

Y de verdad si no entiendo...

Última edición por chemanuel001; 21/04/2011 a las 13:38
  #16 (permalink)  
Antiguo 21/04/2011, 13:53
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Hola, ya solucione todo y no me da ningun tipo de error..

Lo puse de la siguiente manera:

Código PHP:
<?php

$bd
=mysql_connect("localhost","usuario","123") or die("No se conecto a la base de datos");
mysql_select_db("db");

$opt=$_POST["opt"];

if (
$opt==1)
    {
    
$nombre=$_POST["nombre"];
    
$cantidad=$_POST["cantidad"];
    
$identificadorinicial"SELECT id FROM producto WHERE nombre='$nombre'";
    
$identificadormysql_query($identificadorinicial) or die (mysql_error());
    
    
$sql"UPDATE producto SET cantidad = cantidad + '$catidad' WHERE id='$identificador'";
    
$res=mysql_query($sql,$bd) or die (mysql_error());
    }

    
$res2 mysql_query("SELECT SUM(cantidad) as total_suma FROM cantidad"); 
    
?>
Todo se ejecuta perfecto.. Pero no lo suma ni lo agrega a la base de datos y no se por que..
  #17 (permalink)  
Antiguo 21/04/2011, 14:15
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por chemanuel001 Ver Mensaje
Hola, ya solucione todo y no me da ningun tipo de error..

Lo puse de la siguiente manera:

Código PHP:
<?php

$bd
=mysql_connect("localhost","usuario","123") or die("No se conecto a la base de datos");
mysql_select_db("db");

$opt=$_POST["opt"];

if (
$opt==1)
    {
    
$nombre=$_POST["nombre"];
    
$cantidad=$_POST["cantidad"];
    
$identificadorinicial"SELECT id FROM producto WHERE nombre='$nombre'";
    
$identificadormysql_query($identificadorinicial) or die (mysql_error());
    
    
$sql"UPDATE producto SET cantidad = cantidad + '$catidad' WHERE id='$identificador'";
    
$res=mysql_query($sql,$bd) or die (mysql_error());
    }

    
$res2 mysql_query("SELECT SUM(cantidad) as total_suma FROM cantidad"); 
    
?>
Todo se ejecuta perfecto.. Pero no lo suma ni lo agrega a la base de datos y no se por que..
El formulario utiliza method post verdad?

Por otro lado para que utilizas $res2 ? Con este $sql= "UPDATE producto SET cantidad = cantidad + '$catidad' WHERE id='$identificador'"; ya tendría que funcionar. Prueba en phpmyadmin o algún gestor MySql que tengas a hacerlo así pero sustituyendo '$cantidad' por un número cualquiera e '$identificador' por alguno que tengas en la BD !! no creo que te de error.

Suerte

EDITO

te recomiendo leer bien la sintaxis antes de postear:

No es $catidad si no $cantidad
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #18 (permalink)  
Antiguo 21/04/2011, 21:51
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Si bueno te pongo la otra parte del codigo para que verifiques..


Código PHP:
<html>
<head>
<title>Contador de Compras</title>
</head>
<script language="javascript">

function verifica()
{
    if (f.cantidad.value=="")
    {
     alert ("Por favor ingrese el numero de productos comprados");
     return;
    }
    
    f.opt.value=1;
    f.submit();
}

</script>
<body>
<form name="f" method="post">
<input type="hidden" name="opt">
<div align="center">
<h1>Contador de Compras</h1>
Nombre: <input type="text" name="nombre"><br>
Cantidad: <input type="text" name="cantidad"><br>
<input type="button" value="Enviar" name="enviar" onClick=verifica()>

<br>Actualmente este articulo fue comprado un total de <?=$total mysql_result($res2,0);?> veces.
</div>
</form>
</body>
</html>
Asi es como lo estoy haciendo, pero sigue sin actualizarme, parece que todo se envia bien pero no lo agrega a el existente.

La variable $res2 la uso para mostrar la cantidad de veces que el articulo fue comprado...

Saludos-.
  #19 (permalink)  
Antiguo 22/04/2011, 05:13
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por chemanuel001 Ver Mensaje
Si bueno te pongo la otra parte del codigo para que verifiques..


Código PHP:
<html>
<head>
<title>Contador de Compras</title>
</head>
<script language="javascript">

function verifica()
{
    if (f.cantidad.value=="")
    {
     alert ("Por favor ingrese el numero de productos comprados");
     return;
    }
    
    f.opt.value=1;
    f.submit();
}

</script>
<body>
<form name="f" method="post">
<input type="hidden" name="opt">
<div align="center">
<h1>Contador de Compras</h1>
Nombre: <input type="text" name="nombre"><br>
Cantidad: <input type="text" name="cantidad"><br>
<input type="button" value="Enviar" name="enviar" onClick=verifica()>

<br>Actualmente este articulo fue comprado un total de <?=$total mysql_result($res2,0);?> veces.
</div>
</form>
</body>
</html>
Asi es como lo estoy haciendo, pero sigue sin actualizarme, parece que todo se envia bien pero no lo agrega a el existente.

La variable $res2 la uso para mostrar la cantidad de veces que el articulo fue comprado...

Saludos-.
Has corregido lo que te puse??? lo de catidad ??

Por otro lado:

<?=$total = mysql_result($res2,0);?>

Qué es <?= ????????????? No será <?php echo $total = .... etc ???
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?
  #20 (permalink)  
Antiguo 22/04/2011, 13:14
 
Fecha de Ingreso: julio-2009
Mensajes: 32
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Formulario que sume valores [2da duda]

Hola, si lo corregí.. El error lo tuve fue en el post.. y lo otro que me comentas no tiene problema, eso me funciona perfectamente.. Lo que me pasa es que no suma ni agrega nada a la base de datos...
  #21 (permalink)  
Antiguo 22/04/2011, 13:19
Avatar de Jask  
Fecha de Ingreso: abril-2006
Ubicación: Madrid
Mensajes: 773
Antigüedad: 18 años
Puntos: 15
Respuesta: Formulario que sume valores [2da duda]

Cita:
Iniciado por chemanuel001 Ver Mensaje
Hola, si lo corregí.. El error lo tuve fue en el post.. y lo otro que me comentas no tiene problema, eso me funciona perfectamente.. Lo que me pasa es que no suma ni agrega nada a la base de datos...
Puede ser el tipo de campo de la BD, fijate, por si es tipo texto como un char, varchar ... olvida que sume nada, tiene que ser numérico. Ya para ello consulta este link, dependiendo del rango que necesites utilizar:

numeric-types

Por otro lado te recomendaría ir poniendo echo debajo de variables, por ejemplo, al seleccionar un id hacer un echo a $identificador para ver que resultado te da, otro a los POST para ver si la variable te está tomando bien los resultados.. eso ya no te puedo ayudar depende de varios factores y lo tienes que mirar tu

Saludos
__________________
Os iusti meditabitur sapientiam
Si te he ayudado, por qué no un poquito de Karma :) ?

Etiquetas: formulario
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:46.