PHP - Varias consultas sql

   
Vista:

Varias consultas sql

Publicado por Fh (6 intervenciones) el 16/10/2014 17:54:52
HOla, quiero hacer varias consultas independientes con la misma conexión en php.

Es decir

1
2
$conector=mysql_connect('bbdd',servidor','pass');
$basedatos= mysql_select_db('usuario',$conector);

(Primera consulta)
1
2
3
$consulta= " insert into tabla(campo1, campo2, campo3)
select campo1,campo2, SUM(campo3) AS campo3 from tabla2
where campo6='D' and campo1LIKE '".$_POST['filtro']."%' GROUP BY SUBSTRING(campo1, 1, 3)";

y una segunda consulta:

1
2
3
$consulta= " insert into tabla(campo1, campo2, campo4)
select campo1,campo2, SUM(campo4) AS campo4 from tabla2
where campo6='H' and campo1LIKE '".$_POST['filtro']."%' GROUP BY SUBSTRING(campo1, 1, 3)";


He intentado llamando a las dos $consulta, pensé que primero ejecutaría una y luego la otra.
He probado llamando $consulta y $consulta2, no ejecuta la segunda.

Y he intentado abriendo la conexión, $consulta cerrar conexión, abrir una nueva conexión $consulta y cerrar la conexión. Pero solo me ejecuta la segunda.


También he intentado
1
2
3
4
5
6
$consulta= " insert into tabla(campo1, campo2, campo3)
select campo1,campo2, SUM(campo3) AS campo3 from tabla2
where campo6='D' and campo1LIKE '".$_POST['filtro']."%' GROUP BY SUBSTRING(campo1, 1, 3);
insert into tabla(campo1, campo2, campo3)
select campo1,campo2, SUM(campo3) AS campo3 from tabla2
where campo6='D' and campo1LIKE '".$_POST['filtro']."%' GROUP BY SUBSTRING(campo1, 1, 3)";

DIrectamente en sql es posible pero desde php no hace nada...


¿Como puedo hacer las dos consultas en la misma hoja de php?


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Varias consultas sql

Publicado por domer36 (1 intervención) el 16/10/2014 18:05:52
Es muy sencillo, y es como lo has intentado hacer.

Primero ejecutas una y despues la otra:

$query1 = "INSERT INTO tabla1() VALUES(); // primer consulta
$query2 = "INSERT INTO tabla1() VALUES(); // segunda consulta


$conn = mysql_connect($server, $username, $password); // establecemos la conexion.
mysql_select_db($database, $conn); // seleccionamos nuestra base de datos de nuestra conexion establecida.

mysql_query($query1); // ejecutamos la primer consulta

mysql_query($query2) // ejecutamos la segunda consulta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Varias consultas sql

Publicado por Vainas (254 intervenciones) el 16/10/2014 19:57:24
Buenas:

Si no tratas las consultas pues no veras nada.

Una consulta a una base de datos involucra:

1. Conexion a la base de datos
2. Crear la consulta
3. Ejecutarla y guardar el resultado
4. Procesar el resultado
5. Cerrar la conexion a la base de datos.

Puedes conectar a la base de datos y crear 2 variables cada una con su sentencia SQL. Lo siguiente es ejecutar cada consulta y guardar el resultado en 2 variables mas donde almacenes el resultado, procesas cada resultado y entonces ya puedes cerrar la conexion.

En tu caso el tipo de consulta es un INSERT pero esto no evita que al ejecutarla se devuelva algun valor. Puedes comprobar con este valor si se ejecuto bien la consulta o no.

Referencia: http://php.net/manual/es/function.mysql-query.php

Cito un parrafo que dice:

1
Para otros tipos de sentencias SQL, tales como INSERT, UPDATE, DELETE, DROP, etc, mysql_query() devuelve TRUE en caso de éxito o FALSE en caso de error.

Añadiendo a lo que dice domer36

1
2
3
$respuesta1 = mysql_query($query1); // ejecutamos la primer consulta
$respuesta2 = mysql_query($query2) // ejecutamos la segunda consulta
if($respuesta1){....

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar