Ver Mensaje Individual
  #3 (permalink)  
Antiguo 08/05/2013, 01:34
Avatar de guardarmicorreo
guardarmicorreo
 
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: cómo insertar en un campo de llave foránea

Cita:
Iniciado por repara2 Ver Mensaje
No se puede agregar o actualizar una tabla secundaria: restricción de clave externa fallaComprueba que el usuario exista y que el INSERT está correctamente escrito.
Tu select de usuario no comprueba si hay o no resultados, de manera que si el usuario no existe o no se encuentra, el script continúa.
Salu2
efectivamente, estaba escribiendo mal el encapsulado de VALUES.

finalmente el método quedó así

Código PHP:
Ver original
  1. public function crea_post($titulo,$usuario,$post,$fechahora) //recibe los valores necesarios para el post
  2.         {
  3.             $consulta="SELECT id, usuario from usuarios where usuario='".$usuario."'"; //selecciono el id y el usuario, donde el usuario coincida con el recibido por parámetro
  4.             $result_conexion=Conectar::connect($consulta); //conecto a la base de datos
  5.             while($resultado=mysql_fetch_array($result_conexion))//mientras $resultado reciba valores
  6.             {
  7.                 $id=$resultado['id']; //escojo la id del usuario
  8.             }
  9.             //finalmente con la id del usuario lo que hago en la siguiente conexion a base de datos es insertar en el campo id_usuarios el valor int obtenido anteriormente
  10.             $crea_post="INSERT INTO posts VALUES (null, '".$titulo."', '".$id."', '".$post."', '".$fechahora."')";
  11.             $result_conexion=Conectar::connect($crea_post); //conecto a la base de datos e inserto
  12.             echo "Entrada publicada con éxito";
  13.         }

respecto a lo que comentas del SELECT ¿cómo se hace para que en caso de que no exista un valor o no se cumpla la condición el script no continúe?

gracias :)