Foros del Web » Programando para Internet » PHP »

¿Data Sets MySQL en PHP?

Estas en el tema de ¿Data Sets MySQL en PHP? en el foro de PHP en Foros del Web. Hola Estimados!.. Siempre sentí la curiosis de saber esto, pero no sabía donde preguntar. Ahora, me recordé de este tema así que paso a contarles ...
  #1 (permalink)  
Antiguo 12/09/2008, 13:03
 
Fecha de Ingreso: agosto-2008
Mensajes: 42
Antigüedad: 15 años, 7 meses
Puntos: 2
¿Data Sets MySQL en PHP?

Hola Estimados!..

Siempre sentí la curiosis de saber esto, pero no sabía donde preguntar. Ahora, me recordé de este tema así que paso a contarles lo que quiero/necesito hacer.

Supongamos una tabla con los siguientes campos:
- id_externa (clave)
- id (clave)
- code (clave)
- value

con id y code como claves (los tres campos en conjunto). Supongamos que de momento hay dos valores (para simplificar el ejemplo) para el campo "code"

Por lo tanto puede haber una fila (52, 1, "X", "equis"), y otra como (52, 1, "Z", "Zeta"). Y algo asi para repetirse para cada combinacion id_externa y id "id" (que pueden ser muchos");

Ahora, tengo que presentar todos valores para un id_externa en particular, en una tabla html, con una columna "X", y una columna "Z".

por lo tanto, podría hacer algo como:

Código PHP:
$query_1 mysql_query("select id from table where id_externa=$id_externa"); // rescarto todos los "id" asociados a "id_externa"
while($row_1 mysql_fetch_array($query_1)){
         
$id $row_1['id'];
         
$query_2 mysql_query("select code, value from table where id=$id and id_externa=$id_externa"); // para rescatar code y value para una combinacion especifica de id e id_externa
         
         // entonces, aqui ya tengo los datos que tengo que poner en una fila de la tabla, pero no sé en qué orden están, ni si cuantas filas hay, porque aunque hayan solo dos valores para "code", se puede dar el caso que para un valor de "code" no haya una fila, por lo que no podría necesariamente utilizar orden by en la consulta sql. Otra forma de solucionarlo, es reemplazando la consulta anterior por una más corta, y luego volver a hacer un while que vuelva a hacer otra consulta sql para ahí obtener las filas en el orden que necesito(y si no hay alguna podré controlarlo sin problemas).
        


Entonces, ¿como hacer para poder obtener todos los datos de la forma que necesito sin tener que hacer tantas consultas sql indivuales? Después de todo, todas las operaciones se hace sobre la misma tabla.

En otros lenguajes de programación de "microsuave" he visto que existe un objeto dataset, donde puedo colocar todo el resultado de una sql query, y luego ir haciendo filtros (con los datos ya cargados en memoria) para hacer lo que necesito realizando sólo una consulta a la base de datos, en vez de potencialmente miles como el caso anterior.

Entonces, la pregunta en concreto es ¿existe algún clon de esto en PHP para manejar los datos de esa forma de una DB MySQL?
He leído la documentación de php (no en extenso claro) pero aún no logro encontrar nada.

Si no llegara a encontrar algo como esto... ¿creen que sería buena idea hacer una clase para manejar esto?

Esperos todos sus comentarios. Gracias.

Saludos,
  #2 (permalink)  
Antiguo 15/09/2008, 09:04
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Data Sets MySQL en PHP?

A mi entender tenés dos opciones

La primera es
Código PHP:
$resultados = array();
while (
$fila mysql_fetch_assoc($resultado) {
    
$resultados[] = $fila;

Que te da todos los resultados en el vector $resultados

Y la segunda es crear un procedimiento almacenado en la base, de tal forma que terminás haciendo la misma cantidad de consultas pero no tenés que enviarlas, se hacen todas en el servidor de bbdd.


Saludos.
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 15:22.