Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2007, 14:32
Avatar de acousticgerman
acousticgerman
 
Fecha de Ingreso: abril-2004
Ubicación: Merlo, buenos aires
Mensajes: 364
Antigüedad: 20 años
Puntos: 1
De acuerdo Php Para Base De Datos

Hola a todos, tengo la posibilidad de ingresar a un trabajo, el problema es que me dan el siguiente test para ingresar y yo soy muy novato en PHP, necesitaría si alguien podría ayudarme con las siguientes preguntas, POR FAVOR!!! al menos una idea no la resolución completa no quiero molestar.

GRACIAS!!!!!




PHP Test

1. Uso de la declaración de la función a continuación, explicar si la función tiene algún error en el mismo, lo que es su finalidad y cualquier optimizaciones usted que se pueden hacer. Asegúrese de incluir descripciones de los argumentos pasados y la función de salida, en su caso. Asegúrese de que su estado de las hipótesis.


1 function auto_query( $_table, $_vars ) {
2 $_result = $this->query( "EXPLAIN $_table_name" );
3 $_fields = array();
4 while( $_row = $_result->fetchRow() ) {
5 array_push( $_fields, $_row['Field'] );
6 }
7
8 if( $_vars[$_table . '_id'] ) {
9 $_query = "UPDATE $_table SET ";
10 }
11 else {
12 $_query = "INSERT INTO $_table SET " . $_table . '_date_created = NOW(), ';
13 }
14
15 $_query_params = array();
16
17 foreach( $_fields as $_field ) {
18 if( isset( $_vars[$_field] ) ) {
19 $_query_params[] = "$_field = " . $this->dbh->quoteSmart( $_vars[$_field] );
20 }
21 }
22 $_query .= implode( ',', $_query_params );
23 if( $_vars[$_table . '_id'] ) {
24 $_query .= " WHERE {$_table}_id = " . $this->dbh->quoteSmart($_vars[$_table . '_id']);
25 }
26 return $_query;
27 }


preguntas:
2. En la línea 18, ¿por qué se sset () en lugar de una simple condicional como se utilizaba en la línea 8?
3. ¿Qué puede usted hacer hipótesis acerca de la estructura de base de datos? Sugerencia: Líneas 8 - 13

-------------------------------------------------------------------



4. Uso de la declaración de la función a continuación, explicar si la función tiene algún error en el mismo, lo que es su finalidad y cualquier optimizaciones usted que se pueden hacer. Asegúrese de incluir descripciones de los argumentos pasados y la función de salida, en su caso. Asegúrese de que su estado de las hipótesis.



1 function get_employees_by_hierarchy( $_employee_id = 0,$_depth = 0,$_org_array = array() ) {
2 if ( $this->org_depth < $_depth ) {
3 $this->org_depth = $_depth;
4 }
5 $_depth++;
6 $_query = "SELECT * FROM employees WHERE ";
7 if ( !$_employee_id ) {
8 $_query .= "employee_manager_id IS NULL OR employee_manager_id = 0";
9 }
10 else {
11 $_query .= "employee_manager_id = " . $this->dbh->quoteSmart( $_employee_id );
12 }
13 $_result = $this->query( $_query );
14
15 while ( $_row = $_result->fetchRow() ) {
16 $_row['depth'] = $_depth;
17 array_push( $_org_array, $_row );
18 $_org_array = $this->get_employees_by_hierarchy(
19 $_row['employee_manager_id'],
20 $_depth,
21 $_org_array
22 );
23 }
24 return $_org_array;
25 }


preguntas:
5. Especular por qué líneas 2 - 4 son necesarios.
6. Especular por qué la línea 16 es necesario.



-----------------------------------------------------------------



MIL GRACIAS A TODOS, EN LO QUE PUEDAN AYUDARME ASÍ SEA ALGO, ESTARÉ ETERNAMENTE AGRADECIDO!!!!!!
__________________
"Life goes on..."