Foros del Web » Programando para Internet » PHP »

Cruzar tablas de datos

Estas en el tema de Cruzar tablas de datos en el foro de PHP en Foros del Web. Hola gente, como va? Tengo el siguiente problema: Estoy armando un sistema de control de cobro mensual. Para simplificarme la vida lo hice con una ...
  #1 (permalink)  
Antiguo 12/08/2004, 16:44
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
Cruzar tablas de datos

Hola gente, como va? Tengo el siguiente problema:
Estoy armando un sistema de control de cobro mensual. Para simplificarme la vida lo hice con una base de datos en txt. El script de carga de clientes y el que me los muestra ya estan listos, pero no se como seguir... la idea es cruzar la tabla de clientes con una que contenga meses. Y así saber, que cliente está al día y cual debe.

Aqui les paso el script que me muestra los datos de los clientes:

Código PHP:
<?php 
// ********************************************************************************
// List all clients available for editing
// ********************************************************************************

    // How Many News to show on one page
    
if($news_per_page == ""){ $news_per_page 33; }

    
$all_db = array();
    
$all_db file("data/datos.txt");
    
// choose only needed news items
    
foreach($all_db as $raw_line){
        
$raw_arr explode("|"$raw_line);
          
$all_db_tmp[] = $raw_line;
        }

$all_db $all_db_tmp;



// Prelist Entries
    
$flag 1;
    if(
$start_from == "0"){ $start_from ""; }
    
$i $start_from;
    
$entries_showed 0;

if(!empty(
$all_db)){

    foreach (
$all_db as $line){
        if(
$j $start_from){ $j++; continue; }
        
$i++;

        
$item_db explode("|",$line);
         
$itemdate date("d/m/y",$item_db[0]);

             if(
$flag == 1){ $bg="#F7F6F4"$flag 0; }
             else {
$bg "#FFFFFF"$flag 1;}

             
$title stripslashespreg_replace(array("'\|'""'\"'""'\''"), array("I""&quot;""'"), $item_db[1]) );
            
             
$entries .= "<tr>

        <td height=18  bgcolor=\"#E6E6E6\">
             <a title='EDIT: $item_db[2]' href=\"$PHP_SELF?&edit_id=$item_db[0]\">$title</a>
             <td height=18 bgcolor=$bg align=right>"
;
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[2]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[3]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[4]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[5]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[6]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[7]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[8]</td>";
             
$entries .= "<td bgcolor=\"#E6E6E6\">$item_db[9]</td>";
             
             
$entries .= "<td align=center bgcolor=\"#E6E6E6\"><input name=\"selected_news[]\" value=\"{$item_db[0]}\" style=\"border:0; background-color:$bg\" type='checkbox'>

             </td></tr>
            "
;
            
$entries_showed ++;

        if(
$i >= $news_per_page $start_from){ break; }
    }
//foreach news line
}
// End prelisting
echo "<table>";
echo 
$entries;
echo 
"</table>";
?>
  #2 (permalink)  
Antiguo 12/08/2004, 20:28
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 13 años, 6 meses
Puntos: 2
Te puedo asegurar que te va a simplificar muchísimo más la vida hacerlo en base de datos (mysql por ejemplo). Vas a hacerlo con la mitad de código y mucho más sencillo.
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 13/08/2004, 07:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Concuerdo con Living ..

Las base de datos (su buen diseño/modelo de datos) y su própio lenguaje de consultas (SQL) se diseñaron justamente para hacerte más fácil ese tipo de consultas "complejas".

Además de más óptimo el sistema en sí .. Date cuenta que si trabajas con archivos de texto plano .. tu lógica SIEMPRE ha de leer todo tu archivo ".txt" hacia un array (normalmente) para trabajarlo (ordenar .. leer, buscar .. etc). Eso con "base de datos" tu tan sólo haces tu consulta SQL mas o menos compleja y esta te entrega los datos solicitados sin más problemas.

Un saludo,
  #4 (permalink)  
Antiguo 13/08/2004, 10:26
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
ok, gente... Comenzaré de nuevo, pero esta vez con sql. De todos modos calculo que llegaré a este mismo lugar (un script de carga de clientes y otro que lo lea). Me pueden ir adelantando algo sobre cruzar tablas sql, o de como generar una tabla dinámica con meses???

Gracias!!!
  #5 (permalink)  
Antiguo 13/08/2004, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cuando definas tu modelo de datos de tus tablas implicadas ahí se podrá ver que sentecia SQL será la más adecuada para "cruzar" ambas tablas y obtener los resultados que requieras ..

Por mientras y para que tomes conctato con el mundo de las "Base de datos" te recomiendo los tutoriales de:
www.mysql-hispano.com

Un saludo,
  #6 (permalink)  
Antiguo 13/08/2004, 15:44
Avatar de sakul  
Fecha de Ingreso: julio-2002
Mensajes: 274
Antigüedad: 15 años, 4 meses
Puntos: 0
gracias Cluster.
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 21:55.