Foros del Web » Programando para Internet » PHP »

Array incompleto

Estas en el tema de Array incompleto en el foro de PHP en Foros del Web. Hola! estoy trabajando con arrays y me salio un problema es un array con alrededor de 200 arrays dentro ej: Código PHP:      [ links ...
  #1 (permalink)  
Antiguo 26/07/2013, 20:01
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Array incompleto

Hola!

estoy trabajando con arrays y me salio un problema

es un array con alrededor de 200 arrays dentro ej:
Código PHP:
    [links] => Array
        (
            [
3322] => Array
                (
                    [
id] => 3322
                    
[url] => url
                    
[lang] => lang
                    
[platform] => plat
                    
[title] => titulo
                
)
...... 
y así, pero si quiero agregar al formulario más campos debajo de Links ya no me deja no me da ningun error de memoria incluso tengo asignado 512 porque pense que era eso pero no, simplemente no me muestra lo demas que inserto.

acaso el array tiene un numero limite? donde se podria cambiar esto?

Gracias espero puedan ayudarme.
  #2 (permalink)  
Antiguo 26/07/2013, 20:23
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Array incompleto

Coloca el codigo que estas usando........ los arrays en PHP son dinamicos y ni siquiera son arrays per se... no creo tu logres encontrar un limite

Cita:
Iniciado por ajalex Ver Mensaje
Hola!

estoy trabajando con arrays y me salio un problema

es un array con alrededor de 200 arrays dentro ej:
Código PHP:
    [links] => Array
        (
            [
3322] => Array
                (
                    [
id] => 3322
                    
[url] => url
                    
[lang] => lang
                    
[platform] => plat
                    
[title] => titulo
                
)
...... 
y así, pero si quiero agregar al formulario más campos debajo de Links ya no me deja no me da ningun error de memoria incluso tengo asignado 512 porque pense que era eso pero no, simplemente no me muestra lo demas que inserto.

acaso el array tiene un numero limite? donde se podria cambiar esto?

Gracias espero puedan ayudarme.
__________________
Salu2!
  #3 (permalink)  
Antiguo 26/07/2013, 20:39
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Array incompleto

el codigo php es este:

Código PHP:
                if ( $_POST )
                {
                    
//echo "<pre>";
                    //print_r( $_POST);
                    //die();
                    
$p $_POST;
                    
$saved=true;

                    foreach ( 
$p['links'] as $link )
                    {
                        
mysql_query("UPDATE movies_links SET 
                                url='"
.mysql_real_escape_string($link['url'])."',
                                lang='"
.mysql_real_escape_string($link['lang'])."',
                                title='"
.mysql_real_escape_string($link['title'])."',
                                platform='"
.mysql_real_escape_string($link['platform'])."'
                            WHERE
                                id='"
.$link['id']."'
                        "
);
                    }

                    foreach ( 
$p['new_links'] as $link )
                    {
                        
mysql_query("INSERT INTO movies_links ( movie_id,url,lang,title,platform ) VALUES ( 
                                '"
.$p['id']."',
                                '"
.mysql_real_escape_string($link['url'])."',
                                '"
.mysql_real_escape_string($link['lang'])."',
                                '"
.mysql_real_escape_string($link['title'])."',
                                '"
.mysql_real_escape_string($link['platform'])."'
                        )"
);
                    }

                    
mysql_query("UPDATE moviesv2 SET
                        name_es = '"
.mysql_real_escape_string($p['name_es'])."',
                        name_en = '"
.mysql_real_escape_string($p['name_en'])."',
                        extra_name_es = '"
.mysql_real_escape_string($p['extra_name_es'])."',
                        extra_name_en = '"
.mysql_real_escape_string($p['extra_name_en'])."',
                        category_name_es = '"
.mysql_real_escape_string($p['category_name_es'])."',
                        category_name_en = '"
.mysql_real_escape_string($p['category_name_en'])."',
                        thumbnail = '"
.mysql_real_escape_string($p['thumbnail'])."',
                        picture = '"
.mysql_real_escape_string($p['picture'])."',
                         picture_top = '"
.mysql_real_escape_string($p['picture_top'])."',
                         description_es = '"
.mysql_real_escape_string($p['description_es'])."',
                        description_en = '"
.mysql_real_escape_string($p['description_en'])."',
                        duration = '"
.mysql_real_escape_string($p['duration'])."',
                        year = '"
.mysql_real_escape_string($p['year'])."',
                        director = '"
.mysql_real_escape_string($p['director'])."',
                        staff = '"
.mysql_real_escape_string($p['staff'])."',
                        valid = '"
.mysql_real_escape_string($p['valid'])."',
                        report_type = '"
.mysql_real_escape_string($p['report_type'])."', 
                        keywords = '"
.mysql_real_escape_string($p['keywords'])."'
                    WHERE id = "
.$p['id'] );

                    if ( 
$_POST['update_date'] == 'ok' )
                    {
                        
mysql_query("UPDATE moviesv2 SET date_added = '".date("Y-m-d H:i:s")."' WHERE id = ".$p['id'] );
                    } 
aparte para crear links uso javascript para añadir mas campos:
Código:
                    function addLink()
                    {
                        var num = $$('mr').length;
                        var html = '<hr><mr>URL: <input type="text" name="new_links['+num+'][url]" style="width:950px;" /><br>';
                        html += 'Lang: <select name="new_links['+num+'][lang]">';
                        html += '<option value="español españa">Español</option>';
                        html += '<option value="español latino">Latino</option>';
                        html += '<option value="versión original subtitulada">VO</option>';
                        html += '<option value="inglés">Ingles</option>';
                        html += '</select>';
                        html += '<select name="new_links['+num+'][platform]">';
                        html += '<option value="vk">Vk</option>';html += '<option value="yt">Youtube</option>';html += '<option value="nv">Nowvideo</option>';html += '<option value="pl">Putlocker</option>';html += '<option value="mv">Moevideos</option>';html += '<option value="amv">AllMyVideos</option>';html += '<option value="ply">Played.to</option>';html += '<option value="sc">Streamcloud</option>';                        html += '</select> <br>';
                        html += 'Title: <input type="text" name="new_links['+num+'][title]" style="width:950px;" /><br>';
                        $('new_links').insert(html);
                    }
  #4 (permalink)  
Antiguo 26/07/2013, 21:25
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años, 7 meses
Puntos: 292
Respuesta: Array incompleto

OK... viene de base de datos..... si bien no creo que exista un "limite" tan facil de alcanzar.... te aconsejaria simules las inserciones en el array con datos al azar ...y ves que pasa...

Por otro lado... en vez de hacer un var_dump() de ese array lo recorras y vayas sumando campo por campo de acuerdo a su tipo y longitud si es string ... los bytes que ocupan en memoria.


Para que necesitas miles o millones de registros en un array ? [ digo...tantos para tener un problema como el que crees tener ]
__________________
Salu2!
  #5 (permalink)  
Antiguo 26/07/2013, 21:39
Avatar de ajalex  
Fecha de Ingreso: agosto-2003
Mensajes: 122
Antigüedad: 21 años, 3 meses
Puntos: 0
Respuesta: Array incompleto

Lo que pasa es que es para insertar links, es de una web para ver peliculas me preguntaron y anteriormente a mi me dio ese mismo problema.

Realice un sistemapara Blbioteca y funcionaba perfecto, pero añadieron mas de mil libros entocnes cuando añaden o editan alguno tenia un campo para relacionar libros, tenia de un lado la lsita de todos los libros en el sistema y del otro lado metia los que relacionaría.

me daba lo mismo cuando añadian algo nuevo los campos input debajo de las relaciones y parte de el listado ya no lo mostraba lo deje así no lo he revisado solo limite el lsitado a 50 libros para solucionarlo por el momento incluso cuando imprimo con print_r($_POST) para ver el array desde ahi ya no me muestra todo el contenido enviado.
  #6 (permalink)  
Antiguo 26/07/2013, 23:46
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: Array incompleto

Mmmm enviar mas de 100 campos en un formulario es una salvajada, primeramente porque no es nada natural para una persona llenar tantos campos, por otro lado, SIEMPRE puede suceder algo y evitar que se "inserten" (si es el caso) todos esos campos en la DB de un solo tajo, por lo tanto puede haber errores (la ley de murphy), imagina el caso y tener que volver a llenar tantos campos es una locura, aparte, cada navegador tiene un máximo para enviar datos hacia el servidor (get/post, no hablo de archivos!) que rondan los 5kb de manera segura, para estos casos donde se usan formularios para alimentar una DB (o similar) se usan bloques de datos, por ejemplo se envian en paquetes de 5 o como máximo 10 paquetes (en el caso de la librería 10 libros con toda su información), al enviar se vuelve a cargar el formulario limpio para insertar una nueva tanda, esto es mas seguro, si falla no se tendrán que llenar infinidad de campos...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Etiquetas: formulario, incompleto
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 02:14.