Foros del Web » Programando para Internet » PHP »

PHP OO Actualizar una fila especifica en mi BD usando PHP

Estas en el tema de Actualizar una fila especifica en mi BD usando PHP en el foro de PHP en Foros del Web. Hola Buenos dias a todos, primero que nada gracias por pasar a revizar mi post. Mi problema es el siguiente, estoy haciendo una pequeña pagina ...
  #1 (permalink)  
Antiguo 16/06/2012, 10:14
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Exclamación Actualizar una fila especifica en mi BD usando PHP

Hola Buenos dias a todos, primero que nada gracias por pasar a revizar mi post.

Mi problema es el siguiente, estoy haciendo una pequeña pagina con algunos procesos, entre los que me esta ocacionando problema es:

1) una validacion de un campo en mi base de datos, es decir, yo quiero que mi validacion revice si no hay registros en mi base de datos(ejecute un registro), pero si hay un registro (1 fila) cuando precione el boto los datos ingresados(valores numericos) sean sumados a los que estan en la fila 1 de mi base de datos.
este es mi codigo de esa parte:

Código PHP:
Ver original
  1. $gasa= $_REQUEST['risg1'];
  2. $gasb= $_REQUEST['risg2'];
  3. $conexion=mysql_connect("localhost","root","")
  4.   or die("Problemas en la conexion");
  5.  
  6. mysql_select_db('prancebd2',$conexion) or
  7.   die("Problemas en la seleccion de la base de datos");
  8. $query = "SELECT COUNT(*) FROM mi_tabla DESC LIMIT 1";
  9. $result = mysql_query($query);
  10. $num_rows = mysql_num_rows($result);
  11. if($num_rows==0) {
  12.                $conexion=mysql_connect("localhost","root","")
  13.                or die("Problemas en la conexion");
  14.                mysql_select_db('prancebd2',$conexion) or
  15.                die("Problemas en la seleccion de la base de datos");
  16.                mysql_query("insert into registrontab2(gasa,gasb) values
  17.               ('$gasa','$gasb')",$conexion) or die("Problemas en el select".mysql_error());
  18.  
  19.                mysql_close($conexion);
  20.  
  21.                echo "<script languaje='javascript'>
  22.                     alert('Carga De Combustible Completa');
  23.                    </script>","<br>";
  24.                     $url="http://localhost/Gineth/index.html";
  25.                echo "<SCRIPT>window.location='$url';</SCRIPT>";
  26. }
  27. else
  28. {
  29.                $conexion=mysql_connect("localhost","root","")
  30.                or die("Problemas en la conexion");
  31.                mysql_select_db('prancebd2',$conexion) or
  32.                die("Problemas en la seleccion de la base de datos");
  33.                mysql_query("update registrontab2 set gasa=gasa +'$gasa', gasb=gasb+'$gasb' where id=gasa, id=gasb",$conexion) or die("Problemas en el select".mysql_error());
  34.  
  35.                  mysql_close($conexion);
  36.  
  37.                  echo "<script languaje='javascript'>
  38.                 alert('Carga de Combustible de 91 y 95 Oct se Completo');
  39.                 </script>","<br>";
  40.                  $url="http://localhost/Gineth/index.html";
  41.                  echo "<SCRIPT>window.location='$url';</SCRIPT>";
  42. }

aqui solo me ejecuta la el if, y el else ni lo ve noc xq :S cada vez que trato es como si la setencia no viera la fila 1 y me ingresara los datos.

2)yo tengo un input con su respectivo boto, cuando coloco una valor numero alli y preciono mi boton cargar, este inmediatamente, va y se lo resta al valor que esta en la primera posicion en mi base de datos ( si mi valor de mi bd llega a 0 quiciera que me arrojara un alerta impidiendo restarle mas valores) noc si me explique bien, aqui esta mi codigo de esta parte.

Código PHP:
Ver original
  1. $isvg= $_REQUEST['isvg'];
  2. $is1g= $_REQUEST['is1g'];
  3.  
  4.  switch ($is1g) {
  5.     case "is1g1":
  6.                  $conexion=mysql_connect("localhost","root","")
  7.                  or die("Problemas en la conexion");
  8.  
  9.                  mysql_select_db('prancebd2',$conexion) or
  10.                  die("Problemas en la seleccion de la base de datos");
  11.  
  12.                  mysql_query("update registrontab2 set gasa=gasa-'$isvg' where gasa=gasa",$conexion) or die("Problemas en el select".mysql_error());
  13.  
  14.                  mysql_close($conexion);
  15.  
  16.                  echo "<script languaje='javascript'>
  17.                 alert('La Compra del 91 Oct se Completo');
  18.                 </script>","<br>";
  19.                  $url="http://localhost/Gineth/index.html";
  20.                  echo "<SCRIPT>window.location='$url';</SCRIPT>";
  21.  
  22.         break;
  23.     case "is1g2":
  24.                  $conexion=mysql_connect("localhost","root","")
  25.                  or die("Problemas en la conexion");
  26.  
  27.                  mysql_select_db('prancebd2',$conexion) or
  28.                  die("Problemas en la seleccion de la base de datos");
  29.  
  30.                  mysql_query("Update registrontab2 Set gasb=gasb-'$isvg' Where gasb=gasb",$conexion) or die("Problemas en el select".mysql_error());
  31.  
  32.                  mysql_close($conexion);
  33.  
  34.                  echo "<script languaje='javascript'>
  35.                 alert('La Compra del 95 Oct se Completo');
  36.                 </script>","<br>";
  37.                  $url="http://localhost/Gineth/index.html";
  38.                  echo "<SCRIPT>window.location='$url';</SCRIPT>";
  39.         break;
  40.     default:
  41.         echo "<script languaje='javascript'>
  42.        alert('Debe Seleccionar el Tipo de Combustible');
  43.        </script>","<br>";
  44.         $url="http://localhost/Gineth/index.html";
  45.         echo "<SCRIPT>window.location='$url';</SCRIPT>";
  46.  
  47. }


espero me puedan ayudar con mi pequeño problema como soy un principiante en este lo considero al dificil, Bueno gracias de antemano. si necesitan que les explique algo no duden en preguntar
  #2 (permalink)  
Antiguo 16/06/2012, 11:28
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Probá cambiar esto:

Código PHP:
Ver original
  1. $result = mysql_query($query);

por esto

Código PHP:
Ver original
  1. $result = mysql_query($query, $conexion);

PD: te recomendaría separar la conexión en un archivo aparte y luego incluirlo. Ej:

conexion.php
Código PHP:
Ver original
  1. $conexion=mysql_connect("localhost","root","")
  2.                  or die("Problemas en la conexion");
  3.  
  4. mysql_select_db('prancebd2',$conexion) or
  5.                  die("Problemas en la seleccion de la base de datos");
  #3 (permalink)  
Antiguo 16/06/2012, 11:41
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Código PHP:
Ver original
  1. $result = mysql_query($query, $conexion);

Gracias por responder a mi pregunta pero:
lo probe pero que va, es como si no me leyera las instrucciones, y solo ejecuta la primera instruccion del if.

Última edición por Chuckyz0r; 16/06/2012 a las 11:42 Razón: falto especificar algo
  #4 (permalink)  
Antiguo 16/06/2012, 11:49
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Podrías probar dos cosas:

1) cambia la sql por esto:

Código SQL:
Ver original
  1. SELECT COUNT(1) FROM mi_tabla

2) antes del if hace esto:

Código PHP:
Ver original
  1. echo mysql_error ($conexion);

con esto último vas a ver si tenés algún error en la sql, sinó, tal vez simplemente el la cantidad de datos que tenés cero, supongo que eso ya lo comprobaste.
  #5 (permalink)  
Antiguo 16/06/2012, 11:57
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: Actualizar una fila especifica en mi BD usando PHP

en lugar de preguntar con php y si existe hacer otra consulta podes hacer todo en una de esta forma si tenes definido un campo unico

Código SQL:
Ver original
  1. INSERT INTO TABLA
  2.    (NOMBRE, APELLIDO, LOQUESEA)
  3.    VALUES ('PEPITO', 'GARCIA', 'LALALALA')
  4.    ON DUPLICATE KEY UPDATE
  5.      NOMBRE = 'LALALA',
  6.      APELLIDO = 'CHACHACHA';

o sea, ese códido inserta, y si ya existe, actualiza
  #6 (permalink)  
Antiguo 16/06/2012, 12:01
 
Fecha de Ingreso: junio-2012
Mensajes: 18
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Cita:
Iniciado por walterdevel Ver Mensaje
Podrías probar dos cosas:

1) cambia la sql por esto:

Código SQL:
Ver original
  1. SELECT COUNT(1) FROM mi_tabla

2) antes del if hace esto:

Código PHP:
Ver original
  1. echo mysql_error ($conexion);

con esto último vas a ver si tenés algún error en la sql, sinó, tal vez simplemente el la cantidad de datos que tenés cero, supongo que eso ya lo comprobaste.
si yo lo revice pero lo tengo como int. valores numericos, hice los cambios y me dio este error "Problemas en el selectYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' gasb=gasb' at line 1"

-----------------------------------------
Cita:
Iniciado por patriciomase Ver Mensaje
en lugar de preguntar con php y si existe hacer otra consulta podes hacer todo en una de esta forma si tenes definido un campo unico

Código SQL:
Ver original
  1. INSERT INTO TABLA
  2.    (NOMBRE, APELLIDO, LOQUESEA)
  3.    VALUES ('PEPITO', 'GARCIA', 'LALALALA')
  4.    ON DUPLICATE KEY UPDATE
  5.      NOMBRE = 'LALALA',
  6.      APELLIDO = 'CHACHACHA';

o sea, ese códido inserta, y si ya existe, actualiza
como ago para definir un campo unico ? tal vez asi podria solucionar parte de mi problema.
  #7 (permalink)  
Antiguo 16/06/2012, 12:05
 
Fecha de Ingreso: diciembre-2010
Mensajes: 788
Antigüedad: 13 años, 4 meses
Puntos: 51
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Entonces tu problema es ese para empezar:

Supongo que podés cambiar esto:

Código PHP:
Ver original
  1. mysql_query("update registrontab2 set gasa=gasa-'$isvg' where gasa=gasa",$conexion) or die("Problemas en el select".mysql_error());

por esto:

Código PHP:
Ver original
  1. mysql_query("update registrontab2 set gasa=gasa-'$isvg'",$conexion) or die("Problemas en el select".mysql_error());

esto aumentaría $isvg veces el campo gasa para todos los registros de la tabla registrontab2.
  #8 (permalink)  
Antiguo 16/06/2012, 12:33
Avatar de patriciomase  
Fecha de Ingreso: abril-2012
Ubicación: Mar del Plata
Mensajes: 323
Antigüedad: 12 años
Puntos: 34
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Cita:
como ago para definir un campo unico ? tal vez asi podria solucionar parte de mi problema.
ponele un campo de nombre id y lo pones como primary key, es lo mas facil

despues haces el

Código SQL:
Ver original
  1. INSERT INTO tabla(campos)
  2. VALUES(valores)
  3. WHERE id = 1
  4. ON duplicate KEY UPDATE
  5. campo1 = valor1,
  6. campo2 = valor2
  7. y asi todos los que sean

si no existe te lo inserta, y si existe lo actualiza
  #9 (permalink)  
Antiguo 17/06/2012, 12:31
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: Actualizar una fila especifica en mi BD usando PHP

Un resumen rápido de una forma de hacerlo:
Código PHP:
$sql mysql_query("SELECT * FROM tabla");
if(
mysql_num_rows($sql) > 0){
    
mysql_query("UPDATE tabla SET campo = campo + '".$valor."', ....");
}
else{
   
mysql_query("INSERT INTO tabla VALUES (....)");

Por ejemplo.

Etiquetas: bd, especifica, fila, html, mysql, registro, sql, tabla
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 18:15.