Ver Mensaje Individual
  #3 (permalink)  
Antiguo 25/02/2010, 13:16
teloxzak
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Usar un valor como variable en una consulta msyql

hay una opcion y que me gusta mucho usar con los SP (procedimientos almacenados) ejemplo;

DELIMITER $$

DROP PROCEDURE IF EXISTS `nombre_bd`.`guardar_nombre` $$
CREATE PROCEDURE `nombre_bd`.`guardar_nombre` ()
BEGIN
DECLARE ref VARCHAR(20);
DECLARE tiponombre VARCHAR(20);

SELECT c.tx_ref, c.t_name as typeName
INTO ref, tiponombre
FROM content_tx_t_c c
INNER JOIN content_tx__{typeName} as t
ON c.tx_ref = t.ref
WHERE c.c_id IN (8,22,9,23,24,10,3);

/*a continuacion el insert*/
INSERT INTO nombre_tabla_destino(campo1, campo2)
VALUES (ref, tiponombre);

END $$

DELIMITER ;


y la manera de llamarlos en php:

$sqlquery="CALL guardar_nombre()";
mysql_query($sqlquery);

en ocaciones php te marca un error que dice que no puede ejecutar consultas multiples el truco es que solo en el mysql_connect(); se le agregue un false y 65536. ejemplo

mysql_connect("localhost", "root", "123", false, 65536);

en el procedimiento hay otra forma que es mas practica en vez de poner VALUES y las variables, se le pone SELECT que tu hiciste primero.

espero que sea de ayuda, saludos