como puedo sacar los valores de un arreglo a otro sin perder las
claves ni los indices ;
de la forma normal no puede ser
arreglo2 = arreglo1 ;
porque despues no lo puedo usar..
si alguien sabe me lo puede decir ok..
| |||
sacar valores de un arreglo como puedo sacar los valores de un arreglo a otro sin perder las claves ni los indices ; de la forma normal no puede ser arreglo2 = arreglo1 ; porque despues no lo puedo usar.. si alguien sabe me lo puede decir ok.. |
| |||
Seguro que no se puede? Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
esta bien lo que dices tu pero no me lo reconoce como un arreglo o solamente me imprime el primer indice con sus valores; lo que pasa es que el arreglo lo recibo de una funcion externa y no se los valores del arreglo, conosco los indices solamente. necesito una funcion para sacar los valores con sus indices utilizando un ciclo ya que pueden ser muchos registros disculpen las molestias pero no tiene algun metodo por ahi. |
| |||
Si no pones el código que usas para representar/leer ese arreglo nuca veremos que problema tienes concretamente ... Los arreglos los puedes recorrer con bucles foreach() que son los que mejor van para arreglos (asociativos como el ejemplo del array que puse o no ..) Código PHP: Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
este es mi problema original, trate de separarlo pero veo que necesitas todo el codigo .. yo traigo el arreglo de mysql lo paso a clientes y de ahi lo paso a el codigo php el que va a generar el template, el problema es que al enviarlo al loop del template me manda el error variable pasada al each no es un objeto; pero si yo genero un arreglo en el codigo este funciona perfecto; entonces lo que necesito es recoger el arreglo y pasarlo a otro arreglo o que alguien me indique como usar correctamente template . este es el php que utiliza el template y la clase que yo cree"Clientes.php" <?php include('class.template.inc'); require('Clientes.php'); $test_var = 'Hello world!'; $page_title = 'Template Class'; $a = new Clientes(); $arreglo = array(); $arreglo = $a->obtiene_datos(); => aqui yo creo que esta el error : me da el siguiente error : variable pasada al each () no es un arreglo ; debe ser al each que utiliza el template class; $tpl = new template; $tpl->load_file('complete', 'pagina.html'); $tpl->parse_loop('complete', 'arreglo'); $tpl->pprint('complete', array('test_var','page_title')); ?> esta es la clase cliente que yo cree. <?php class Clientes { var $id_cliente ; var $record = array(); // constructor function Clientes() { } // funcion que llamo desde el php function obtiene_datos(){ require ("class.mysql.php"); => clase mysql funciona ok. $miconexion = new DB("","",""); $miconexion->query("SELECT * FROM clientes"); return $miconexion->fetchRow(); } } ?> este es el template, de aqui lo baje http://mediate.mirrors.phpclasses.o...package/54.html y la clase mysql que hace referencia Cliente la baje de la misma pagina pero todo esto funciona bien y aqui esta el html por si acaso <HEAD> <TITLE>{page_title}</TITLE> </HEAD> <BODY> <P ALIGN="CENTER">{test_var}</P> <TABLE BORDER="0" BGCOLOR="#000000" STYLE="background-color: #000000; font-family: monospace; font-size: 10pt" CELLSPACING="1" ALIGN="CENTER"> <TR> <TH BGCOLOR="#DDDDDD">Nombres de Clientes</TH> <TH BGCOLOR="#DDDDDD">apellidos</TH> <TH BGCOLOR="#DDDDDD">Id</TH> <TH BGCOLOR="#DDDDDD">sexo</TH> <TH BGCOLOR="#DDDDDD">coreo</TH> </TR> <LOOP NAME="arreglo"> <TR> <TD BGCOLOR="#DDDDDD">{nombres}</TD> <TD BGCOLOR="#DDDDDD">{apellidos}</TD> </TR> </LOOP NAME="arreglo"> </TABLE> </BODY> </HTML> |
| |||
Sigue faltanto el código de: class.mysql.php por qué ahí se verá que hace exactamente el método: fetchRow() Un saludo, PD: .. no sé si cerrar el otro tema que tienes abierto .. pero por favor continua los temas en su mensaje incial .. Tal vez ahora que estoy preguntando yo esto aquí .. por otro lado otra persona lo está preguntando también ..
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. Última edición por Cluster; 22/03/2004 a las 15:52 |
| |||
record es un arreglo var $record = array(); esta declarado al principio pero no te preocupes del mysql por que funciona correcto function fetchRow() { if (isset($this->queryid)) { $this->previd++; return $this->record = @mysql_fetch_array($this->queryid); } else { $this->return_error('Query no especificado.'); } pero no te preocupes del mysql por que funciona correcto .. pero este no es el punto .. ya que el arreglo lo recibo en el codigo php y si lo imprimo con un foreach funciona, bien eso quiere decir que esta lleno el arreglo.. pero al pasarlo al loop del templates me da el error de que no es un arreglo , por eso necesito desarmarlo y pasarlo a otro arreglo en el mismo codigo php para que el templates me lo reconosca como un arreglo.. por lo menos es lo que se me ocurre .. si sabes otra forma mas facil me la podrias dar. lo que pasa es que estoy creando varias clases para un programa muy grande que necesito hacer y tengo que ocupar las clases de esa manera no tengo otra forma.. |
| |||
Conoces como funciona mysql_fecht_array() ? .. Bueno .. esas funciones te devuelven el primer registro de un recordset al ser llamado y mueven el puntero interno de la consulta una posición hacia adelante .. Al llegar al último registro de ese recordset obtenido por tu mysql_query() (tu $this->queryid) .. devuelve la función un "false" ... Tenlo presente. La consulta que ejecutas: SELECT * FROM clientes puede arrojar de 0 a N registros (en el recordset) .. Con tu llamada a tu función sólo obtienes el primero .. como instancias tu objeto en la función obtiene_datos() no vas a poder ejecutar esa función en un bucle para obtener más registros arrojados por ese recordset (siempre te devolverá el primero por qué siempre instancias el objeto) ... Podrías crearte un nuevo método (si no lo usas ya) que te genere un array bidimensional usando un bucle while ($registro=mysql_fecht_array($recorset)) .. Y tu método fechRow .. tal vez te venga mejor usar mysql_fetch_row() en lugar del _fetch_array() ... Aparte de esto.. dices que usas un "each" pero no veo el código completo que usas ... Se hace complicado ver "porciones" de código que más encima son classes (objetos) .. Yo ya empiezo a "perderme" sin poder probarlo. Revisa los puntos que te menciono y usa print_r() a tu supesta variable que no te entrega el valor que esperas .. revisa si tu consulta SQL se ejecuta y si arroja los registros esperados .. etc .. Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |
| |||
A todo esto ... $tpl->parse_loop('complete', 'arreglo'); ¿no será? (no he revisado la documentación del motor de templates que usas .. pero de alguna forma hay que indicarle la variable que usará?): $tpl->parse_loop('complete', $arreglo); Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. |