Foros del Web » Programando para Internet » PHP »

subir variables a mysql- me da error

Estas en el tema de subir variables a mysql- me da error en el foro de PHP en Foros del Web. Estoy intentando hacer algo "sencillo" pero me da error, ¿alguién me puede echar una mano? Explico antes lo que intento hacer: - Recoger las variables ...
  #1 (permalink)  
Antiguo 14/07/2010, 07:18
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
subir variables a mysql- me da error

Estoy intentando hacer algo "sencillo" pero me da error, ¿alguién me puede echar una mano?

Explico antes lo que intento hacer:

- Recoger las variables que me han llegado del flash a este archivo php
- Una vez recogidas, compruebo que si estaban vacías en la base de datos, entonces inserto los nuevos valores
- Si por el contrario no estaban vacías, entonces modifico los valores actuales.

El php que tengo es así:

Código:
<?php  
require_once("config.php"); 
$lg1=$_POST["lg1"]; 
$lg2=$_POST["lg2"]; 
 
if($lg1==NULL|$lg2==NULL){ 
   $ins=mysql_query($gimnasialanz,"INSERT INTO horarios_espe (lg1,lh1) VALUES ('$lg1','$lh1'); 
}else{ 
    $sql="UPDATE horarios_espe SET "; 
    $sql .= "lg1 ='" .$_POST['lg1']; 
    $sql .= "lh1 ='" .$_POST['lh1']; 
$res=mysql_query($sql) or die (mysql_error()); 
   echo "&estado=DATOS SUBIDOS&";  
   mysql_close($cnx); 
   exit; 
   }    
?>

El error que me manda el navegador es:
Cita:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in (me indica q es la linea de la sentencia del INSERT TO)
Alguién sabe dónde está el fallo y decirme si es correcta la programación que estoy haciendo para los objetivos que he dicho al principio?

Muchas gracias de antemano.
__________________
Nada es imposible para una mente dispuesta
  #2 (permalink)  
Antiguo 14/07/2010, 08:18
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: subir variables a mysql- me da error

En este tipo de casos, es muy útil, al postear en el foro, que pegues tu código entre las etiquetas [ php][ /php] ( sin los espacios ).

Código PHP:

$ins
=mysql_query($gimnasialanz,"INSERT INTO horarios_espe (lg1,lh1) VALUES ('$lg1','$lh1'); 
Te falta algo :P.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 14/07/2010, 08:48
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

¿el que me falta? El code que has puesto es igual al mio no? o me voy a tener q poner gafas, pq no veo lo que falta...

Y lo siento, a la próxima usaré las etiquetas, no lo sabía...

Espero tu respuesta... muchas gracias.
__________________
Nada es imposible para una mente dispuesta
  #4 (permalink)  
Antiguo 14/07/2010, 09:10
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: subir variables a mysql- me da error

Debías fijarte en el color de la línea, y sí, el código que puse es el tuyo. Si te fijas al final, te falta cerrar una comilla doble y un paréntesis.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 14/07/2010, 11:06
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

Ahh perdón, es que me puse a comparar tu línea con la mía, y no veía la diferencia... pero de todas formas, he ido al php q tengo, y en él si que tengo puesto el cierre de la comilla doble y el paréntesis, lo que pasa es que al resumir para ponerlo aqui no lo puse, pero esa linea de codigo en el script termina así:

Código PHP:
$sh3);"); 
Así que el error no puede ser ese..jo :( , ya estaba yo contenta con haber conseguido la solución :(

¿Qué puede ser entonces?
__________________
Nada es imposible para una mente dispuesta
  #6 (permalink)  
Antiguo 14/07/2010, 11:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: subir variables a mysql- me da error

por favor, aprende a depurar tus consultas...
Código PHP:
mysql_query(/* tu consulta */) or die(mysql_error()); 
así nos evitas el adivinar tu problema, y realmente te ayudas a resolverlo por ti misma!! ;)

además, revisando tu código anterior... el primer argumento de mysql_query() es la consulta, y el segundo en $link de la conexión...

¿porque lo haces a tu manera??

por favor, lee el manual
http://php.net/mysql_query
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 14/07/2010, 12:15
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

ok, lo siento, ya he estado leyendo el manual y hago lo que puedo...

He vuelto a revisarlo y a compararlo con el manual, y he corregido algunas cosas, ya que el error que me daba era que la sentencia no era válida, entonces ahora en la parte de la sentencia del insert into... está así:

Código PHP:
$cons="INSERT INTO horarios_espe (lg1,lh1)VALUES('$lg1','$lh1')";
    
mysql_query($cons) or die (mysql_error()); 
Y ahora el error que me da es "No database selected".

He puesto para intentar conrregirlo ésto:
Código PHP:
mysql_query($baseD$cons) or die (mysql_error()); 
Pero me dice que la sentencia es inválida. Entonces, ¿dónde tengo que poner o seleccionar la base de datos?

Por si sirve, en el require_once he llamado a config.php, que tiene lo siguiente (por si el fallo está ahi):

Código PHP:

<?
  $dblink
=mysql_connect('servidor','usuario''password');
  
$baseD "nombredelabbdd";
?>
__________________
Nada es imposible para una mente dispuesta
  #8 (permalink)  
Antiguo 14/07/2010, 12:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: subir variables a mysql- me da error

NOTA que también existe una función para seleccionar BDs...

mysql_select_db
http://php.net/mysql_select_db

debes usarla después de hacer la conexión, y una solo ves... claro, antes de ejecutar tus consultas!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 14/07/2010, 12:51
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

Cierto, gracias! :)

Ahora, cuándo ya lo he puesto, el navegador me salta con este mensaje:
Cita:
Column count doesn't match value count at row 1
Que quiere decir que el numero de columnas no corresponde a la fila 1?? No lo acabo de entender...
__________________
Nada es imposible para una mente dispuesta
  #10 (permalink)  
Antiguo 14/07/2010, 13:30
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: subir variables a mysql- me da error

¿Pero ese error te lo tira donde? ¿Insert o update? Ya que lo que veo en el Update, es que no estás separando los campos con la coma. Sería ideal que pegues el código tal cual lo tienes, no lo escribas a mano.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #11 (permalink)  
Antiguo 14/07/2010, 13:45
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

No es un error en sí, simplemente al verlo en el navegador me pone ese mensaje, y no sé lo que significa...

Entonces, el update lo tengo mal?? :(

Vale, mira pues copio y pego el code tal cual lo tengo (es un poco largo, pero bueno así se verá más claro todo)

Código PHP:
<?php 

require_once("connect.php");

$lg1=$_POST["lg1"];
$lg2=$_POST["lg2"];
$lg3=$_POST["lg3"];
$lh1=$_POST["lh1"];
$lh2=$_POST["lh2"];
$lh3=$_POST["lh3"];

$mg1=$_POST["mg1"];
$mg2=$_POST["mg2"];
$mg3=$_POST["mg3"];
$mh1=$_POST["mh1"];
$mh2=$_POST["mh2"];
$mh3=$_POST["mh3"];

$xg1=$_POST["xg1"];
$xg2=$_POST["xg2"];
$xg3=$_POST["xg3"];
$xh1=$_POST["xh1"];
$xh2=$_POST["xh2"];
$xh3=$_POST["xh3"];

$jg1=$_POST["jg1"];
$jg2=$_POST["jg2"];
$jg3=$_POST["jg3"];
$jh1=$_POST["jh1"];
$jh2=$_POST["jh2"];
$jh3=$_POST["jh3"];

$vg1=$_POST["vg1"];
$vg2=$_POST["vg2"];
$vg3=$_POST["vg3"];
$vh1=$_POST["vh1"];
$vh2=$_POST["vh2"];
$vh3=$_POST["vh3"];

$sg1=$_POST["sg1"];
$sg2=$_POST["sg2"];
$sg3=$_POST["sg3"];
$sh1=$_POST["sh1"];
$sh2=$_POST["sh2"];
$sh3=$_POST["sh3"];

$semana=$_POST["semana"];


if(
$lg1==NULL|$lg2==NULL|$lg3==NULL|$lh1==NULL|$lh2==NULL|$lh3==NULL|$mg1==NULL|$mg2==NULL|$mg3==NULL|$mh1==NULL|$mh2==NULL|$mh3==NULL|$xg1==NULL|$xg2==NULL|$xg3==NULL|$xh1==NULL|$xh2==NULL|$xh3==NULL|$jg1==NULL|$jg2==NULL|$jg3==NULL|$jh1==NULL|$jh2==NULL|$jh3==NULL|$vg1==NULL|$vg2==NULL|$vg3==NULL|$vh1==NULL|$vh2==NULL|$vh3==NULL|$sg1==NULL|$sg2==NULL|$sg3==NULL|$sh1==NULL|$sh2==NULL|$sh3==NULL|$semana==NULL) {

    
$cons="INSERT INTO horarios_espe (semana,lg1,lh1,lg2,lh2,lg3,lh3,mg1,mh1,mg2,mh2,mg3,mh3,xg1,xh1,xg2,xh2,xg3,xh3,jg1,jh1,jg2,jh2,jg3,jh3,vg1,vh1,vg2,vh2,vg3,vh3,sg1,sh1,sg2,sh2,sg3,sh3)VALUES('$semana1','$lg1','$lh1','$lg2','$lh2','$lg3','$lh3','$mg1','$mh1','$mg2','$mh2','$mg3','$mh3','$jg1','$jh1','$jg2','$jh2','$jg3','$jh3','$vg1','$vh1','$vg2','$vh2','$vg3','$vh3','$sg1','$sh1','$sg2','$sh2','$sg3','$sh3')";
    
mysql_query($cons) or die (mysql_error()); 
    
    }else{
    
    
$sql="UPDATE horarios_espe SET ";
    
$sql .= "semana ='" .$_POST['semana'];
    
$sql .= "lg1 ='" .$_POST['lg1'];
    
$sql .= "lh1 ='" .$_POST['lh1'];
    
$sql .= "lg2 ='" .$_POST['lg2'];
    
$sql .= "lh2 ='" .$_POST['lh2'];
    
$sql .= "lg3 ='" .$_POST['lg3'];
    
$sql .= "lh3 ='" .$_POST['lh3'];
    
    
$sql .= "mg1 ='" .$_POST['mg1'];
    
$sql .= "mh1 ='" .$_POST['mh1'];
    
$sql .= "mg2 ='" .$_POST['mg2'];
    
$sql .= "mh2 ='" .$_POST['mh2'];
    
$sql .= "mg3 ='" .$_POST['mg3'];
    
$sql .= "mh3 ='" .$_POST['mh3'];
    
    
$sql .= "xg1 ='" .$_POST['xg1'];
    
$sql .= "xh1 ='" .$_POST['xh1'];
    
$sql .= "xg2 ='" .$_POST['xg2'];
    
$sql .= "xh2 ='" .$_POST['xh2'];
    
$sql .= "xg3 ='" .$_POST['xg3'];
    
$sql .= "xh3 ='" .$_POST['xh3'];
    
    
$sql .= "jg1 ='" .$_POST['jg1'];
    
$sql .= "jh1 ='" .$_POST['jh1'];
    
$sql .= "jg2 ='" .$_POST['jg2'];
    
$sql .= "jh2 ='" .$_POST['jh2'];
    
$sql .= "jg3 ='" .$_POST['jg3'];
    
$sql .= "jh3 ='" .$_POST['jh3'];
    
    
$sql .= "vg1 ='" .$_POST['vg1'];
    
$sql .= "vh1 ='" .$_POST['vh1'];
    
$sql .= "vg2 ='" .$_POST['vg2'];
    
$sql .= "vh2 ='" .$_POST['vh2'];
    
$sql .= "vg3 ='" .$_POST['vg3'];
    
$sql .= "vh3 ='" .$_POST['vh3'];
    
    
$sql .= "sg1 ='" .$_POST['sg1'];
    
$sql .= "sh1 ='" .$_POST['sh1'];
    
$sql .= "sg2 ='" .$_POST['sg2'];
    
$sql .= "sh2 ='" .$_POST['sh2'];
    
$sql .= "sg3 ='" .$_POST['sg3'];
    
$sql .= "sh3 ='" .$_POST['sh3'];
    
    
    
$res=mysql_query($sql) or die (mysql_error());
    echo 
"&estado=DATOS SUBIDOS&"
    
mysql_close($cnx);
    exit;
    }    
    
?>
__________________
Nada es imposible para una mente dispuesta
  #12 (permalink)  
Antiguo 14/07/2010, 14:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: subir variables a mysql- me da error

si es un error...
Código PHP:
mysql_query($cons) or die (mysql_error()); 
el mensaje viene de la instrucción anterior, y pues... el mensaje, que proviene de un error en la consulta dice lo siguiente: Column count doesn't match value count at row 1

osea que, seguramente el numero de argumentos en la clausula INSERT no concuerda con los pasados en VALUES

y viendo por partes:
Cita:
$cons="INSERT INTO horarios_espe (semana,lg1,lh1,lg2,lh2,lg3,lh3,mg1,mh1,mg2,mh2,mg 3,mh3,xg1,xh1,xg2,xh2,xg3,xh3,jg1,jh1,jg2,jh2,jg3, jh3,vg1,vh1,vg2,vh2,vg3,vh3,sg1,sh1,sg2,sh2,sg3,sh 3)VALUES('$semana1','$lg1','$lh1','$lg2','$lh2','$ lg3','$lh3','$mg1','$mh1','$mg2','$mh2','$mg3','$m h3','$jg1','$jh1','$jg2','$jh2','$jg3','$jh3','$vg 1','$vh1','$vg2','$vh2','$vg3','$vh3','$sg1','$sh1 ','$sg2','$sh2','$sg3','$sh3')";
cuenta las columnas que piensas insertar, y cuenta los valores dados... ¿concuerdan?

es eso, o el UPDATE... como no tengo poderes de adivinación, no puedo distinguir cual consulta arroja el error...

pero:
Código PHP:
mysql_query($cons) or die ('Error INSERT:'.mysql_error());
mysql_query($cons) or die ('Error UPDATE:'.mysql_error());
// etc... 
esto podría ayudar bastante... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 14/07/2010, 14:08
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: subir variables a mysql- me da error

Si le haces un echo a $sql, debería imprimirte una cadena muy extensa sin comas que separen los campos que quieres actualizar.

Debería estar algo así :

Código PHP:
Ver original
  1. $sql .= "lg1 ='" .$_POST['lg1'] . "',";
  2.     $sql .= "lh1 ='" .$_POST['lh1']. "',";
  3.     $sql .= "lg2 ='" .$_POST['lg2']. "',";
  4.     $sql .= "lh2 ='" .$_POST['lh2']. "',";
  5.     $sql .= "lg3 ='" .$_POST['lg3']. "',";
  6.     $sql .= "lh3 ='" .$_POST['lh3']. "',";

Así hasta el penúltimo campo, el último no debe llevar coma al final. Prueba eso, y seguimos depurando ;)
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #14 (permalink)  
Antiguo 14/07/2010, 14:35
Avatar de Hapki  
Fecha de Ingreso: febrero-2005
Mensajes: 263
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: subir variables a mysql- me da error

OEEE!! jolines es que con tanta variable ya me mareo y me pierdo... si no es por vosotros... aisss...

Mil gracias de verdad!! ^_^

Aunque... la sentencia update no me funciona, pero quizás haya tenido yo mal el planteamiento, pq al añadir a la base de datos valores a las variables (desde un archivo flash), se van sumando, haiga o no haiga valores en la bbdd, y yo no quiero q se añada nada nuevo, quiero q se vayan sustituyendo cuándo ya haiga datos en la variable... pero vamos, que ésto me toca reparsarlo bien a fondo y ver como plantearlo para hacerlo así... no os quiero molestar más, que ya he abusado bastante, pero si tenéis a mano algún tutorial o algún ejemplo de algún sitio dónde se haga lo que intento hacer, con eso me doy más que satisfecha, y si no sabéis de algún ejemplo, pues igualmente, muchisimas gracias! por toda vuestra ayuda :)
__________________
Nada es imposible para una mente dispuesta

Etiquetas: mysql, subir, variables
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 03:15.