Foros del Web » Programando para Internet » PHP »

PHP OO Recorrer arreglo

Estas en el tema de Recorrer arreglo en el foro de PHP en Foros del Web. Hola buen día. Tengo la siguinete duda: Esto tratando de recorrer un arreglo de 3 dimensiones Este es el arreglo: Código: <pre>Array ( [tb_datos_generales] => ...
  #1 (permalink)  
Antiguo 14/07/2013, 14:06
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 4 meses
Puntos: 1
Recorrer arreglo

Hola buen día. Tengo la siguinete duda:

Esto tratando de recorrer un arreglo de 3 dimensiones

Este es el arreglo:

Código:
<pre>Array
(
    [tb_datos_generales] => Array
        (
            [0] => Array
                (
                    [N_DATOS_PERSONALES] => 1
                    [N_ID_PERIFL] => 1
                    [S_NOMBRE] => José Manuel Moreno Plaza
                    [S_CALLE] => Cerro de las Palomas
                    [S_NUMERO_INTERIOR] => 
                    [S_NUMERO_EXTERIOR] => 104
                    [N_ID_CP] => 73310
                    [N_ID_PAIS] => MEX
                    [N_ID_ESTATUS] => 1
                    [D_FECHA_NACIMIENTO] => 1986-07-03
                    [D_FECHA_INGRESO] => 2012-07-01
                    [S_MATRICULA] => matricula01
                    [S_CURP] => MOPM860703HDFRLN09
                    [S_FOTO] => 00125454.jpg
                    [S_CORREO] => [email protected]
                    [S_USUARIO] => usuario1
                    [S_CONTRASENA] => 123
                    [S_SEXO] => 1
                )

            [1] => Array
                (
                    [N_DATOS_PERSONALES] => 2
                    [N_ID_PERIFL] => 1
                    [S_NOMBRE] => Fernando Moreno Plaza
                    [S_CALLE] => Cerro de las Palomas
                    [S_NUMERO_INTERIOR] => 101
                    [S_NUMERO_EXTERIOR] => 110
                    [N_ID_CP] => 73310
                    [N_ID_PAIS] => MEX
                    [N_ID_ESTATUS] => 1
                    [D_FECHA_NACIMIENTO] => 1986-07-04
                    [D_FECHA_INGRESO] => 2012-07-02
                    [S_MATRICULA] => matricula02
                    [S_CURP] => MOPM860703HDFRLN10
                    [S_FOTO] => 00125454.jpg
                    [S_CORREO] => [email protected]
                    [S_USUARIO] => usuario2
                    [S_CONTRASENA] => 123
                    [S_SEXO] => 1
                )

            [2] => Array
                (
                    [N_DATOS_PERSONALES] => 3
                    [N_ID_PERIFL] => 1
                    [S_NOMBRE] => nombre3
                    [S_CALLE] => Cerro de las Palomas
                    [S_NUMERO_INTERIOR] => 102
                    [S_NUMERO_EXTERIOR] => 111
                    [N_ID_CP] => 73311
                    [N_ID_PAIS] => MEX
                    [N_ID_ESTATUS] => 1
                    [D_FECHA_NACIMIENTO] => 1986-07-05
                    [D_FECHA_INGRESO] => 2012-07-03
                    [S_MATRICULA] => matricula03
                    [S_CURP] => MOPM860703HDFRLN11
                    [S_FOTO] => 00125454.jpg
                    [S_CORREO] => [email protected]
                    [S_USUARIO] => usuario3
                    [S_CONTRASENA] => 124
                    [S_SEXO] => 1
                )        

        )

    [tb_alumno] => Array
        (
            [0] => Array
                (
                    [N_ID_PERFIL] => 1
                    [N_DATOS_PERSONALES] => 1
                    [N_ID_GRUPO] => 1
                    [N_ID_GRADO] => 1
                    [S_NOTA] => notas 1
                    [N_TURNO] => 1
                )

            [1] => Array
                (
                    [N_ID_PERFIL] => 1
                    [N_DATOS_PERSONALES] => 2
                    [N_ID_GRUPO] => 1
                    [N_ID_GRADO] => 1
                    [S_NOTA] => notas 2
                    [N_TURNO] => 1
                )

            [2] => Array
                (
                    [N_ID_PERFIL] => 1
                    [N_DATOS_PERSONALES] => 3
                    [N_ID_GRUPO] => 1
                    [N_ID_GRADO] => 1
                    [S_NOTA] => notas 3
                    [N_TURNO] => 1
                )           
        )

)
</pre>
Ya logre leerlo pero la duda es como pudo formar la cadena de sql para insertarlos a la BD, es decir tengo que generar este query con ese arreglo:

Código SQL:
Ver original
  1. INSERT INTO tb_generales VALUES
  2. ('1','1','José Manuel Moreno Plaza',etc....),
  3. ('2','1','Fernando Moreno Plaza',etc....), etc......
  4.  
  5. INSERT INTO tb_alumno VALUES
  6. ('1','1','1','1','NOTA 1','1'),
  7. ('1','2','1','1','NOTA 2','1'), etc....

Y lo estoy recorriendo de la siguiente manera:

Código PHP:
foreach ($datos as $llave => $valor){
            
//$sql.="INSERT INTO $llave VALUES";
            
foreach ($valor as $llave2 => $valor2) {                            
                foreach (
$valor2 as $llave3 => $valor3) {                    
                    
$sql.= "'{$datos[$llave][$llave2][$llave3]}'";
                }
            }
        }
           echo 
$sql
Espero y me puedan ayudar????
  #2 (permalink)  
Antiguo 14/07/2013, 14:44
Avatar de Rodrigo_01  
Fecha de Ingreso: enero-2005
Mensajes: 61
Antigüedad: 19 años, 3 meses
Puntos: 6
Respuesta: Recorrer arreglo

tienes que dividir el arreglo en dos por que son dos tablas distintas asi:
ademas que necesitas verificar que todos los campos esta rellenos, que tal si te hace falta un campo y este toma el lugar de otro D:!


Código PHP:
foreach($arreglo['tb_datos_generales'] as $record)
{
   
}

foreach(
$arreglo['tb_alumno'] as $record)
{
   

  #3 (permalink)  
Antiguo 14/07/2013, 14:56
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Recorrer arreglo

Ok lo provare gracias
  #4 (permalink)  
Antiguo 14/07/2013, 15:00
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Recorrer arreglo

Hola ya lo intene como me digiste pero me manda este error

<b>Notice</b>: Array to string conversion in <b>C:\xampp\htdocs\escuela\application\models\DbTa ble\Alumnos.php</b> on line <b>145</b><br />
Array<br />
  #5 (permalink)  
Antiguo 14/07/2013, 15:18
Avatar de zerokull  
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Recorrer arreglo

Alguna otra idea ? Ya se que el error sale por que necesito recorrerlo otra vez pero estoy en las mismas. Este es codigo:

Código PHP:
Ver original
  1. $sql="";
  2.         $sql.="INSERT INTO tb_datos_generales VALUES";
  3.         foreach($datos['tb_datos_generales'] as $key => $value){
  4.             foreach ($value as $key2 => $value2) {
  5.                 //echo 'la llave es: '.$key2.' su valor: '.$value2.'<br>';
  6.                 echo $sql.="('$value2',)";
  7.             }
  8.         }
  9.         echo $sql;

Etiquetas: arreglo, sql
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 11:58.