Foros del Web » Programando para Internet » PHP »

como puedo hacer insert a dos tablas diferentes

Estas en el tema de como puedo hacer insert a dos tablas diferentes en el foro de PHP en Foros del Web. Hola que tal, tengo un inconveniente hace dias que no he podido hacer un insert a dos tablas diferentes: colocare el codigo que tengo: if ...

  #1 (permalink)  
Antiguo 10/11/2009, 06:42
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información como puedo hacer insert a dos tablas diferentes

Hola que tal, tengo un inconveniente hace dias que no he podido hacer un insert a dos tablas diferentes: colocare el codigo que tengo:

if ($_POST['sala'] == "Gerencia")
{
$sql = "insert into neiva(reserva,fecha,horaini,horafin,sala,videobeam ,responsable,evento) values('1','$fecha','$horaini','$horafin','$sala', '$vbeam','$responsable','$evento')";
$sql2 = "insert into bogota(reserva,fecha,horaini,horafin,sala,videobea m,responsable,evento) values('1','$fecha','$horaini','$horafin','Sala Grande(14P)--1701','$vbeam','$responsable','$evento')";

}
$res = mysql_query($sql,$conexion);
$res = mysql_query($sql2,$conexion);
if($res){
echo "Evento grabado";
redireccionar('3','mostrar.php');
}else{
echo "Error al grabar evento: ".mysql_error($conexion);
}
desconectar($conexion);
}else{
  #2 (permalink)  
Antiguo 10/11/2009, 06:45
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: como puedo hacer insert a dos tablas diferentes

el echo es que sólo está avaluando si el 2do insert tuvo éxito, seria preferible que postearas el error concreto.
  #3 (permalink)  
Antiguo 10/11/2009, 07:02
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Bueno no hace ningun insert a las tablas, cuando envio los insert me sale:

Error al grabar evento: Query was empty

Pero es raro ya revise bien los insert y estan bien, con los respectivos nombres.
  #4 (permalink)  
Antiguo 10/11/2009, 08:03
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

POr favor alguien que me colabore
  #5 (permalink)  
Antiguo 10/11/2009, 08:10
Avatar de acoevil  
Fecha de Ingreso: julio-2008
Ubicación: localhost/colombia/sevillaValle.php
Mensajes: 1.123
Antigüedad: 15 años, 8 meses
Puntos: 32
Respuesta: como puedo hacer insert a dos tablas diferentes

Pon

$res = mysql_query($sql,$conexion) or die( mysql_error() );
$res = mysql_query($sql2,$conexion) or die( mysql_error() );

Y dinos que sucede
__________________
Como presentar nuestros datos por medio de tablas . clase Aco_DataGrid Version 1.4
  #6 (permalink)  
Antiguo 10/11/2009, 08:11
Avatar de dquispe  
Fecha de Ingreso: mayo-2009
Ubicación: Lima
Mensajes: 232
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: como puedo hacer insert a dos tablas diferentes

El query esta vacio has un echo para haber que es llo que manda o si esta vacio.

fijate el nombre de los campos y de las variables inicia por ahi.
  #7 (permalink)  
Antiguo 10/11/2009, 08:13
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

¿Has verificado que se cumpla condición $_POST['sala'] == "Gerencia"? Porque si no se cumple las variables $sql y $sql2 estarán vacías.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 10/11/2009, 08:14
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: como puedo hacer insert a dos tablas diferentes

Tal vez sea $_POST['sala'] == "Gerencia" de false, y por lo tanto la variable $slq2 no exista. Y por tanto, mysql_query estará vacío (empty).
  #9 (permalink)  
Antiguo 10/11/2009, 08:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: como puedo hacer insert a dos tablas diferentes

Creo que lo mejor que podrias hacer en este caso es lo siguiente:

Código PHP:

if ($_POST['sala'] == "Gerencia")
{

$sql "insert into neiva(reserva,fecha,horaini,horafin,sala,videobeam ,responsable,evento) values('1','$fecha','$horaini','$horafin','$sala', '$vbeam','$responsable','$evento'); insert into bogota(reserva,fecha,horaini,horafin,sala,videobea m,responsable,evento) values('1','$fecha','$horaini','$horafin','Sala Grande(14P)--1701','$vbeam','$responsable','$evento')";

$res mysql_query($sql,$conexion);

}else {
  
$res false;
}


if(
$res){
echo 
"Evento grabado";
redireccionar('3','mostrar.php');
}else{
echo 
"No se ha podido grabar el evento!";
}
desconectar($conexion);
}else{ 

Trate de hacerlo tocando lo menos posible tus validaciones y codigo


Espero que te sirva

Saludos desde Argentina!
  #10 (permalink)  
Antiguo 10/11/2009, 08:58
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Cuando coloco

$res = mysql_query($sql,$conexion) or die( mysql_error() );
$res = mysql_query($sql2,$conexion) or die( mysql_error() );

Aparece el siguiente mensaje:

Query was empty
  #11 (permalink)  
Antiguo 10/11/2009, 09:04
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: como puedo hacer insert a dos tablas diferentes

parece q no entra al if,algo pasa con la condicion pero si pones mas codigo podremos ayudar
  #12 (permalink)  
Antiguo 10/11/2009, 09:04
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Hola estefanosalazar, gracias por tu aporte, pero me aparece el mensaje:

No se ha podido grabar el evento!
  #13 (permalink)  
Antiguo 10/11/2009, 09:09
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

Insisto, ¿has comprobado que realmente $_POST['sala'] == 'Gerencia'? ¿Realmente tienes un campo con nombre "sala" con ese value?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 10/11/2009, 09:10
Avatar de dcreate  
Fecha de Ingreso: octubre-2009
Ubicación: Veracruz
Mensajes: 536
Antigüedad: 14 años, 6 meses
Puntos: 22
Respuesta: como puedo hacer insert a dos tablas diferentes

apoyo a david en eso, la condicion no se cumple y por eso los sql no contienen nada
  #15 (permalink)  
Antiguo 10/11/2009, 09:16
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Si claro David: este es el form


<form action="agregar.php" method="post" name="f1">
<table border=0 cellspacing="0">
<tr><td colspan="2"><span class="Estilo21">[AGREGAR EVENTO]</span></td></tr>
<tr><td>Fecha</td><td><input type="text" name="fecha" value="<?php echo date('Y-m-d'); ?>" />
Por favor respete el formato </td>
</tr>
<tr><td valign="TOP"><div align="left">
<p>Hora Inicio </p>
<p>Hora Final </p>
</div></td><td><p>
<input name="horaini" type="text" value="HH:MM:SS" />
</p>
<p>
<input name="horafin" type="text" value="HH:MM:SS" />
</p></td></tr>
<tr><td align="center"><div align="left">Sala</div></td>
<td align="center"><div align="left"><span class="Estilo20">
<select name="sala">
<option>--Seleccione--</option>
<option value="Contabilidad">Contabilidad</option>
<option value="Recursos Humanos">Recursos Humanos</option>
<option value="Auditorio">Auditorio</option>
<option value="Gerencia">Gerencia</option>
<option value="Ninguna">Ninguna</option>
</select>
</span></div></td>
</tr>
<tr>
<td align="center"><div align="left">Video Beam
</div></td>
<td align="center"><div align="left">
<input type="checkbox" name="vbeam" value="vbeam">
</div></td>
</tr>
<tr>
<td align="center"><div align="left">Responsable
</div></td>
<td align="center"><div align="left">
<input name="responsable" type="text" size="40" maxlength="40" />
</div></td>
</tr>
<tr>
<td align="center">Observaciones</td>
<td align="center"><div align="left">
<textarea rows="5" cols="20" name="evento"></textarea>
</div></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="submit" type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
  #16 (permalink)  
Antiguo 10/11/2009, 11:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 124
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: como puedo hacer insert a dos tablas diferentes

A ver, proba mostrando en un "echo" el valor que devuelve $_POST['sala'] cuando seleccionas Gerencia.

Saludos!
  #17 (permalink)  
Antiguo 10/11/2009, 13:20
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Hola ya coloque el echo pero salta y sigue mostrando el mensaje de:

No se puede grabar el evento
  #18 (permalink)  
Antiguo 10/11/2009, 13:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

El echo $_POST['sala'] en sí no soluciona el problema, estefanosalazar te indicó que lo hicieras para que puedas ver si realmente estás recibiendo 'Gerencia' como valor para ese campo. ¿Te muestra 'Gerencia' al imprimir el valor de la variable?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #19 (permalink)  
Antiguo 10/11/2009, 13:32
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Si imprimer la palabra Gerencia a parece el mensaje completo de la siguiente manera:


GerenciaError al grabar evento
  #20 (permalink)  
Antiguo 10/11/2009, 14:23
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

He mirado los nombres de todas las variables y estan bien, no se que mas pueda ser... es muy raro...
  #21 (permalink)  
Antiguo 10/11/2009, 14:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

Empieza con la comparación solamente:
Código PHP:
Ver original
  1. if ($_POST['sala'] == 'Gerencia') {
  2.     echo 'Verdadero';
  3. } else {
  4.     echo 'Falso';
  5. }
Si imprime 'Verdadero', revisa la consulta.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #22 (permalink)  
Antiguo 11/11/2009, 07:32
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Que pena con usted david no pude con ese error, anexo mejor todo el codigo del archivo, donde va el mismo codigo el formulario con el insert:

<html>
<link href="estilo.css" rel="stylesheet" type="text/css">
<?php
include_once("funciones.php");
$fecha = $_POST['fecha'];
$horaini = $_POST['horaini'];
$horafin = $_POST['horafin'];
$sala = $_POST['sala'];
$vbeam = $_POST['vbeam'];
$responsable = $_POST['responsable'];
$evento = $_POST['evento'];
if($fecha != "" && $horaini != "" && $horafin != "" && $sala != "" && $responsable != "" && $evento != "")
{
$conexion = conectar();
$vbeam = isset($_POST['vbeam'])? 1: 0; // estado del check, envia 1 si necesita o 0 si no
if ($_POST['sala'] == "Gerencia")
{
/*echo 'verdadero';
}
else
{
echo 'Falso';
}*/

/*$sql = "insert into neiva(fecha,horaini,horafin,sala,videobeam,respons able,evento) values('$fecha','$horaini','$horafin','$sala','$vb eam','$responsable','$evento')";
$sql2 = "insert into bogota(fecha,horaini,horafin,sala,videobeam,respon sable,evento) values('$fecha','$horaini','$horafin','Sala Grande(14P)--1701','$vbeam','$responsable','$evento')";*/

$sql = "insert into neiva(fecha,horaini,horafin,sala,videobeam ,responsable,evento) values('$fecha','$horaini','$horafin','$sala', '$vbeam','$responsable','$evento'); insert into bogota(fecha,horaini,horafin,sala,videobea m,responsable,evento) values('$fecha','$horaini','$horafin','Sala Grande(14P)--1701','$vbeam','$responsable','$evento')";
$res = mysql_query($sql,$conexion);
}
else
{
$res = false;
}
//}
/*$res = mysql_query($sql,$conexion)or die( mysql_error() );
$res = mysql_query($sql2,$conexion)or die( mysql_error() );*/
if($res)
{
echo "Evento grabado";
redireccionar('3','mostrar.php');
}
else
{
echo "Error al grabar evento";
}
desconectar($conexion);
}
else
{
?>
<style type="text/css">
<!--
.Estilo20 { font-size: 9px;
font-weight: bold;
}
.Estilo21 {
color: #CC0000;
font-weight: bold;
font-style: italic;
}
-->
</style>
<form action="agregar.php" method="post" name="f1">
<table border=0 cellspacing="0">
<tr><td colspan="2"><span class="Estilo21">[AGREGAR EVENTO]</span></td></tr>
<tr><td>Fecha</td><td><input type="text" name="fecha" value="<?php echo date('Y-m-d'); ?>" />
Por favor respete el formato </td>
</tr>
<tr><td valign="TOP"><div align="left">
<p>Hora Inicio </p>
<p>Hora Final </p>
</div></td><td><p>
<input name="horaini" type="text" value="HH:MM:SS" />
</p>
<p>
<input name="horafin" type="text" value="HH:MM:SS" />
</p></td></tr>
<tr><td align="center"><div align="left">Sala</div></td>
<td align="center"><div align="left"><span class="Estilo20">
<select name="sala">
<option>--Seleccione--</option>
<option value="Contabilidad">Contabilidad</option>
<option value="Recursos Humanos">Recursos Humanos</option>
<option value="Auditorio">Auditorio</option>
<option value="Gerencia">Gerencia</option>
<option value="Ninguna">Ninguna</option>
</select>
</span></div></td>
</tr>
<tr>
<td align="center"><div align="left">Video Beam
</div></td>
<td align="center"><div align="left">
<input type="checkbox" name="vbeam" value="vbeam">
</div></td>
</tr>
<tr>
<td align="center"><div align="left">Responsable
</div></td>
<td align="center"><div align="left">
<input name="responsable" type="text" size="40" maxlength="40" />
</div></td>
</tr>
<tr>
<td align="center">Observaciones</td>
<td align="center"><div align="left">
<textarea rows="5" cols="20" name="evento"></textarea>
</div></td>
</tr>
<tr>
<td colspan="2" align="center"><input name="submit" type="submit" value="Enviar" /></td>
</tr>
</table>
</form>
<?
}
?>
</html>
  #23 (permalink)  
Antiguo 11/11/2009, 07:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

¿Por qué están comentadas ciertas partes del código? ¿Qué imprimió con esa condición antes de comentarla?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #24 (permalink)  
Antiguo 11/11/2009, 07:43
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: como puedo hacer insert a dos tablas diferentes

Con ese codigo me sale el mensaje de error al grabar evento....
  #25 (permalink)  
Antiguo 11/11/2009, 07:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

Me refiero a la comparación que te indiqué en el mensaje anterior, ¿imprime 'Verdadero' o 'Falso'?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #26 (permalink)  
Antiguo 11/11/2009, 07:54
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: como puedo hacer insert a dos tablas diferentes

Una pregunta como coloco el editor para cuando coloco codigo se muestre como un editor y la letra de color como en dreamweaver
  #27 (permalink)  
Antiguo 11/11/2009, 07:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

Si te refieres al código aquí en el foro, debes usar la etiqueta highlight:
[highlight="php"]/* Código */[/highlight]

El resultado sería:
Código php:
Ver original
  1. /* Código */
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #28 (permalink)  
Antiguo 11/11/2009, 08:00
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: como puedo hacer insert a dos tablas diferentes

Me dice: Parse error: parse error, unexpected '}' in C:\AppServ\www\reservas_salasmasa\calendario\agreg ar.php on line 45

el codigo es :

if ($_POST['sala'] == "Gerencia")
{
echo 'verdadero';
}
else
{
echo 'Falso';
}

$sql = "insert into neiva(fecha,horaini,horafin,sala,videobeam ,responsable,evento) values('$fecha','$horaini','$horafin','$sala', '$vbeam','$responsable','$evento'); insert into bogota(fecha,horaini,horafin,sala,videobea m,responsable,evento) values('$fecha','$horaini','$horafin','Sala Grande(14P)--1701','$vbeam','$responsable','$evento')";

$res = mysql_query($sql,$conexion);

}
else
{
$res = false;
}

if($res)
{
echo "Evento grabado";
redireccionar('3','mostrar.php');
}
else
{
echo "Error al grabar evento";
}
desconectar($conexion);
} else
{
?>

La linea 45 es la que aparece en rojo
  #29 (permalink)  
Antiguo 11/11/2009, 08:02
 
Fecha de Ingreso: enero-2009
Mensajes: 197
Antigüedad: 15 años, 3 meses
Puntos: 0
Información Respuesta: como puedo hacer insert a dos tablas diferentes

Código php:
Ver original
  1. /* Código de prueba */
  #30 (permalink)  
Antiguo 11/11/2009, 08:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: como puedo hacer insert a dos tablas diferentes

¿Y de dónde sale ese }? ¿Pertenece a qué condición?

Limpia el código. Y ve depurando, agregando condiciones para ver qué falla, qué condiciones se cumplen y cuáles no, etc.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 16:49.