Foros del Web » Programando para Internet » PHP »

¿Por que falla al introducir datos al BBDD?

Estas en el tema de ¿Por que falla al introducir datos al BBDD? en el foro de PHP en Foros del Web. No se que pasa que no consigo que me cambie estos datos en la BBDD, haber si me podeis echar una mano por que yo ...
  #1 (permalink)  
Antiguo 28/04/2009, 04:05
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
¿Por que falla al introducir datos al BBDD?

No se que pasa que no consigo que me cambie estos datos en la BBDD, haber si me podeis echar una mano por que yo ya no encuentro el fallo

Gracias por vuestro tiempo de antemano.

Aqui dejo el codigo.

Código PHP:
<?php $id=$_GET['id']; //Recogo ID

$sql=mysql_query("select * FROM descuentos WHERE id='$id'"); 
$datos mysql_fetch_assoc($sql); // Saco datos

$var0=0// Valor 0 por defecto, es para luego hacer una comprobacion

$num=$_POST['num']; //Recivo la variable
echo $num// compruebo que llega

if (!empty($_POST['enviado'])) {
    if (empty(
$num)) {$var0=1;} else {$var0=2;}} //Compruebo que no esta vacia
if (!empty($_POST['enviado']) AND $var0==2// Si no esta vacia se hace esto

{echo '<span class="resena"><center>descuento editado</center></span>'//Texto que avisa de el cambio con exito

mysql_query("UPDATE descuentos SET desc='$num' where id='$id' "); //Sentencia Sql que no me esta funcionando pero en teoria esta bien

$sql=mysql_query("select * FROM descuentos WHERE id='$id'"); //Vuelvo a recargar datos para que salgan actualizados
$datos mysql_fetch_assoc($sql); // Saco datos otra vez
?>

<form id="from1" name="self" method="post" action=""> // Empieza el formulario
<table width="auto" align="center" id="tabla"> //Tabla para ordenar datos
<tr id="top" align="center"><td colspan="2">Editar Descuento</td></tr> 

<tr><td><?php if ($var0==1) {echo '<span class="waring"><b>*Descuentos:</b></span>';} else {echo 'Descuento:';}?></td> //Aqui si el comprobador nos devuelve un error resalto el campo
<td><input type="text" name="num" id="num" size="20" value="<?php echo $datos['desc']*100;?>"/></td></tr> //Aqui recojo y muestro cual es el valor que tiene
<tr><td colspan="2"><label><input type="submit" name="enviado" id="enviado" value="Aceptar" /></label> //hace que funcione el if de arriva para comprobar y luego ingresar datos;
<input type="button" value="Cancelar" onClick="location='http://192.168.1.134/descuentos.php?mod=lst'"></td> // Si dan aqui vuelven a la pagina principal de descuentos

</tr></table>

</form>
Un saludo
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.

Última edición por No-NaMe; 28/04/2009 a las 04:11
  #2 (permalink)  
Antiguo 28/04/2009, 04:37
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: ¿Por que falla al introducir datos al BBDD?

Ten en cuenta, que (a menos que lo hayas omitido en el código) no hay ninguna línea ni include que haga alusión a una conexión a base de datos.

Te recomiendo que eches un ojo a la función mysql_connect.

En caso de que lo tengas incluído en tu código, pero no lo hayas reseñado, sería de gran ayuda que nos pusieses el código de error que te da o que fuerces un or die en el mysql_query, tal que así:

Código PHP:
Ver original
  1. $sql = mysql_query ("consulta") or die ('No ejecuto la consulta por: ' . mysql_error ())

Espero que tengas suerte.


Un saludo.
  #3 (permalink)  
Antiguo 28/04/2009, 04:45
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: ¿Por que falla al introducir datos al BBDD?

he omitido los datos de conexion.

Lo curioso es que porsi solo no da error lo que me dio a pensar que la base de datos y el tipo de dato que introducia eran incompatibles asi que le puse como varchar y sige sin hacer ni caso.

forzando el error dice:

No ejecuto la consulta por: 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 'desc='30' where id='1'' at line 1
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #4 (permalink)  
Antiguo 28/04/2009, 04:48
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: ¿Por que falla al introducir datos al BBDD?

El error creo que está en tu consulta SQL.

Yo probaría a ejecutarla en el phpMyAdmin de tu host hasta que te la muestre correctamente, a ver si así se soluciona el problema.

Espero que tengas suerte.


¡Un saludo!
  #5 (permalink)  
Antiguo 28/04/2009, 04:49
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: ¿Por que falla al introducir datos al BBDD?

De hecho, probaría algo como: WHERE desc='30' AND id='1'
  #6 (permalink)  
Antiguo 28/04/2009, 05:26
 
Fecha de Ingreso: septiembre-2004
Mensajes: 324
Antigüedad: 19 años, 8 meses
Puntos: 13
Respuesta: ¿Por que falla al introducir datos al BBDD?

Depués de los querys pon
or die(mysql_error);
  #7 (permalink)  
Antiguo 29/04/2009, 00:59
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: ¿Por que falla al introducir datos al BBDD?

Bueno, como estaba claro despues de solucionarlo aqui dejo como si me ha funcionado, por si a alguien le interesa o le sirve:

Código PHP:
mysql_query ('UPDATE descuentos SET `desc` = \''.$num.'\' WHERE `id` = '.$id.' ;'); 
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #8 (permalink)  
Antiguo 29/04/2009, 05:08
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 19 años
Puntos: 6
Respuesta: ¿Por que falla al introducir datos al BBDD?

OK. Por lo que entiendo de la solución aportada, la palabra "desc" es una palabra reservada de SQL (ORDER BY x DESC). Por tanto, para tratarla como un campo de la tabla hay que "escaparla", en mysql, con el acento abierto: `desc`
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:25.