SQL, PHP, ¿puedo usar el resultado de mysqli_query en OTRA consulta?

¿Puedo hacer esto?

$query = "SELECT * FROM my_table";

$results = mysqli_query($db, $query)

$query = "SELECT name FROM $results";

$results = mysqli_query($db, $query)

Cualquier ayuda muy apreciada!

preguntado el 08 de febrero de 14 a las 12:02

¿Por qué no lo intentas? -

Obtengo: El objeto de la clase mysqli_result no se pudo convertir a una cadena -

¿"SELECCIONAR nombre DE my_table" no lo haría? -

¿Qué estás intentando lograr? -

seleccione el nombre de (seleccione * de my_table) como temp -

2 Respuestas

No. Para consultas realmente complejas, puede usar tablas temporales:

CREATE TEMPORARY TABLE tmp SELECT * FROM my_table;
SELECT name FROM tmp;

Pero causa una gran sobrecarga para el servidor mysql.

Respondido 08 Feb 14, 12:02

En su consulta, está tomando los resultados de esto:

$query = "SELECT * FROM my_table";

Y luego tratando de hacer esto:

$query = "SELECT name FROM $results";

Puedo pensar en dos cosas que realmente quieres hacer. La primera es banal:

$query = "SELECT name FROM my_table";

La segunda es que desea obtener el nombre de la tabla de la primera consulta y usarlo en la segunda. Puede hacerlo, asumiendo que la primera consulta devuelve una fila y una columna. O que el segundo está dentro de un bucle y simplemente ha simplificado demasiado el código.

Puede hacer esto porque está construyendo las cadenas que forman las consultas a través de la aplicación. No puede hacer esto en SQL básico, porque los nombres de las tablas y las columnas no se pueden crear dinámicamente. Pueden estar usando un prepare declaración, que es equivalente a construir las cadenas en php.

Respondido 08 Feb 14, 13:02

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.