Vectores o matrices ... (perdón por lo extenso)

Alberto Rivera rivera.alberto en gmail.com
Jue Nov 9 11:51:49 CLST 2006


Rodrigo Fuentealba escribió:
> Estimado:
>
> Antes que todo, usa ADOdb (adodb.sourceforge.net), así podrás evitarte
> mucho escándalo con el desorden.
>
> No es como lo habría hecho cualquier cristiano, pero sirve... Aquí
> veremos algunas cositas:
>
> // esto es lo que haces para generar la conexión.
> $db = ADONewConnection('mysql');
> $db->Connect('localhost', 'root', '', 'pruebas');
>
> // estas dos son las queries que usaremos
> $sqlalumno = 'select codigo, nombre from alumno';
> $sqlnota = 'select notas from pruebas where alumno = ? order by codigo 
> asc';
>
> // traemos un recordset
> $rsalumno = $db->Execute($sqlalumno);
>
> if($rsalumno and !$rsalumno->EOF)
> {
>    // mientras hayan datos en el recordset
>    while(!$rsalumno->EOF)
>    {
>        // dibujamos una nueva fila
>        echo('<tr>');
>
>        // escribimos el nombre del alumno
>        echo('<td>'.$rsalumno->fields[1].'</td>');
>
>        // preguntamos por todas las notas del alumno cuyo código es...
>        $rsnota = $db->Execute($sqlnota, array($rsalumno->fields[0]));
>
>        // y las mostramos para el lado entre <td> y </td>
>        if($rsnota and !$rsnota->EOF)
>        {
>            while(!$rsnota->EOF)
>            {
>                echo('<td>'.$rsnota->fields[0].'</td>');
>                $rsnota->MoveNext();
>            }
>        }
>
>        // como hayamos mostrado todas las notas, podemos cerrar la fila.
>        echo('</tr>');
>
>        // y mover al siguiente registro
>        $rsalumno->MoveNext();
>    }
> }
>
> Lo malo es que si tenemos 45 alumnos, haremos N + 1 queries, por lo
> anidadas. Lo bueno es que, desde el punto de vista de la base de
> datos, nos ahorramos memoria trayendo un recordset gigante (aunque en
> MySQL eso no influye mucho), y el query no se hace tan complicado ni
> engorroso, por lo que filtros simples servirán.
>
> No sé trabajar con MySQL en bruto, siempre he dependido de ADOdb en
> PHP ya que difícilmente alguna vez hice algo que involucraba un solo
> gestor de bases de datos.
>
> Atte.
>
> Rodrigo Fuentealba Cartes.
>
Ok gracias, no lo conocia y al parecer está bastante más sencillo de 
utilizar que el crudo php con mysql, ahora conoces alguna restricción de 
plataforma o algo, ideal .. gracias ah :)

salu2
> 2006/11/9, Alberto Rivera <rivera.alberto en gmail.com>:
>> El día 9/11/06, Ricardo Mun~oz A. <rmunoz en pjud.cl> escribió:
>> >
>> > Alberto Rivera wrote:
>> > > Hola señores, soy nuevo en esta lista y quisiera solicitar su ayuda,
>> > > les explico el problema; resulta que necesito recuperar de una tabla
>> > > una serie de registros, imprimirlos en una página y añadirles "N"
>> > > valores cuya cantidad es recuperada de otra trabla, para ser más
>> > > concretos, el problema es similar al del libro de notas, o sea, cada
>> > > alumno debe ser sacado de una tabla y cada una de las pruebas 
>> tambien,
>> > > siendo cada una de estas pruebas las que se deben ingresar. En este
>> > > momento estoy recuperando los registros y almacenandolos sólo con un
>> > > valor de la siguiente forma :
>> >
>> > [...]
>> >
>> > > Esto es lo que tengo en realidad no he podido avanzar más disculpen
>> > > por lo extenso de esta consulta ... espero que se entienda y que el
>> > > código sirva a alguien también :)
>> >
>> > creo que tu problema se puede resolver trayendo datos de ambas tablas
>> > mediante una sentencias SQL
>> > con un JOIN. podrias indicar las estructuras (campos) de ambas tablas
>> > para poder ayudarte.
>>
>>
>> ups no entiendo ... ¿? en realidad la cuestion que el problema no es 
>> traer
>> los datos sino que pasarlos en conjunto a la página donde se 
>> almacenarán :)
>>
>> salu2 y gracias
>>
>>
>> -- 
>> > Ricardo Mun~oz A.
>> > Usuario Linux #182825 (counter.li.org)
>> >
>>
>>
>
>



Más información sobre la lista de distribución PHP