Foros del Web » Programando para Internet » PHP »

Array(); ¿Como se hace?

Estas en el tema de Array(); ¿Como se hace? en el foro de PHP en Foros del Web. Explicacion: Tengo Este codigo @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $m = mysqli_query ( $conectar , "SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee' LIMIT ...
  #1 (permalink)  
Antiguo 29/12/2012, 08:25
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Array(); ¿Como se hace?

Explicacion:

Tengo Este codigo
Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee' LIMIT 3");
  2. while($m1 = mysqli_fetch_array($m)){
  3.     $menu = $m1['Menu'];
  4. }
  5. $array = array(
  6.     "menu[]" => "$menu",
  7. );
__________________________________________________ __________________________________________________ ______________________________
Como creo que es la solucion:

Pero el error esque solo me muestra una categoria y no las 3 que tengo creada
Creo que es porque se crea esto
"menu" => "Primera categoria",
"menu" => "Segunda categoria",
"menu" => "Tercera categoria",

Y entonces al mostrar el array que muestra pues el ultimo y entonces siempre me muestra la tercera categoria

Eso es lo que creo que pasa pero ¿Como hago para que me salga las 3 categoria y no solo una? ¿Haciendo esto?
"menu[1]" => "Primera categoria",
"menu[2]" => "Segunda categoria",
"menu[3]" => "Tercera categoria",

¿Y para mostrarlo como lo hago?
¿Seria hacin?
Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee' LIMIT 3");
  2. while($m1 = mysqli_fetch_array($m)){
  3.     $menu[] = $m1['Menu'];
  4. }
  5. $array = array(
  6.     "menu" => "$menu",
  7. );
  #2 (permalink)  
Antiguo 29/12/2012, 08:47
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Array(); ¿Como se hace?

Primero que nada, al principio no estás creando un array, solo estás sobreescribiendo la misma variable y solo obtienes el último valor asignado.

Código PHP:
Ver original
  1. //hacemos consulta
  2.     $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'e' LIMIT 3");
  3. //declaramos el array
  4. $menu = array();
  5. //recorremos la consulta
  6.     while($m1 = mysqli_fetch_array($m)){
  7. //guardamos los valores
  8. //también funcionaría así, sin declarar el array previamente
  9. //     $menu[] = $m1['Menu'];
  10.         $menu = $m1['Menu'];
  11.     }
  12. // y ya no tendrías que hacer esto:
  13. //    $array = array(
  14. //        "menu[]" => "$menu",
  15. //    );
  16. //solo llamar valores como $menu['valor'];
  #3 (permalink)  
Antiguo 29/12/2012, 09:03
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Array(); ¿Como se hace?

Yo tengo esto
Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee'");
  2. $menu = array();
  3. while($m1 = mysqli_fetch_array($m)){
  4.         $menu = $m1['Menu'];
  5.         echo $menu;
  6. }
Y claro me lo muestra ahora todo perfecto pero necesito que al poner en el template {menu} me salgan los menu por eso hice esto
Código PHP:
Ver original
  1. $array = array(
  2.     "menu" => "$menu",
  3. );
  #4 (permalink)  
Antiguo 29/12/2012, 09:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array(); ¿Como se hace?

Te sugiero que comiences a leer una referencia de arreglos, parece ser que no tienes ni idea de lo que son.

Voy a explicarte con manzanas a ver si lo pillas.
Código PHP:
    $m mysqli_query($conectar"SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee'");

   
// aqui declaras el array
    
$menu = array();

 
// pero mejor creamos otro porque mas abajo lo arruinas
   
$salida = array();

    while(
$m1 mysqli_fetch_array($m)){

            
// aqui echas a perder al array
            
$menu $m1['Menu'];
            echo 
$menu;

            
// aqui es normal que funcione imprimir $menu
            // ¿esto es lo que necesitas ir almacenando?
            
$salida []= $menu;
    }


// ahora $salida es un array que contiene todo lo que fuiste
// acumulando dentro del while, ¿eso está bien para ti?

// sin embargo no entiendo esta parte
// ¿para que necesitas declarar otro array si ya tienes uno?
    
$array = array(
        
"menu" => "$menu",
    );


// en el lugar donde necesites pasar el menu debes usar $salida
// pues es el array llenado anteriormente
    
"menu" => $salida,

// ¿dudas? 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/12/2012, 09:17
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Array(); ¿Como se hace?

Me sale Array
Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'eeeeeeeeeeeeeee'");
  2.     $menu = array();
  3.     $salida = array();
  4.     while($m1 = mysqli_fetch_array($m)){
  5.             $menu = $m1['Menu'];
  6.             $salida []= $menu;
  7.     }
  8. $array = array(
  9.     "menu" => $salida,  
  10.     "footer" => "Bien creado"
  11. );

Yo utilizo un sistema de template y necesito tener $array = array(
"menu" => $salida,
"footer" => "Bien creado"
); para poner {footer} y que me salga ese texto
  #6 (permalink)  
Antiguo 29/12/2012, 09:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array(); ¿Como se hace?

Por eso te he dicho que comiences a leer una referencia de arrays.

Un array no lo puedes imprimir como cualquier texto ya que no es un texto.

Código PHP:
// MAL
$salida = array();

echo 
$salida// Array 
Desde ahí ya comienzas a tener problemas, ahora el asunto no es que no puedas pasar el menú, sino que ahora tu sistema de plantillas no tiene soporte para arreglos.

Eso o en lugar de pasarle un array tal cual le pasas una cadena construida a partir de join(), es imposible adivinar cual es el tipo de resultado que esperas.

Otra forma es que dentro de tu plantilla iteres los elementos del menú para imprimir cada uno individualmente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 29/12/2012, 12:13
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Array(); ¿Como se hace?

pero entonces como se aria?
  #8 (permalink)  
Antiguo 29/12/2012, 12:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Array(); ¿Como se hace?

Pues primero debes entender el problema al que te enfrentas y las herramientas que necesitas para lidiar con ello, la clave está en el tipo de dato.

Si tu no sabes menos nosotros, la idea es de que pienses por ti mismo, pero después de que entiendas lo que tienes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 29/12/2012, 18:10
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Array(); ¿Como se hace?

Estoy totalmente de acuerdo con @pateketruekgsjfnafse (siempre me cuesta su nombre).

Pero te doy una pista:
Código PHP:
Ver original
  1. $array = array( "uno","dos","tres");
  2.  
  3.  
  4. /*esto es valido:*/
  5.  
  6. $array = array();
  7.  
  8. $array[] = "uno";
  9. $array[] = "dos";
  10. $array[] = "tres";
  11.  
  12. print_r($array);
  13. //array( [0]=> uno,[1]=> dos,[2]=> tres)
  14.  
  15. /*Tambien es valido esto:*/
  16. $array = array();
  17.  
  18. $array[] = array( "uno","dos","tres");
  19. $array[] = "dos";
  20. $array[] = "tres";
  21.  
  22. print_r($array);
  23. //array( [0]=>array( [0]=> uno,[1]=> dos,[2]=> tres),[1]=> dos,[2]=> tres)
  24.  
  25. /*que equivale a esto*/
  26.  
  27. $array=array(
  28.    array( "uno","dos","tres"),
  29.   "dos",
  30.   "tres"
  31.  );
__________________
Mono programando!
twitter.com/eguimariano
  #10 (permalink)  
Antiguo 03/01/2013, 05:48
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
array

Hola tengo este codigo que me dice mis menus

Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'ejemplo'");
  2. while($m1 = mysqli_fetch_array($m)){
  3. $menu = array();
  4. $menu = $m1['Menu'];
  5. print_r("$menu<br>");
  6. }

Pero yo lo quiero meter en este otro array que es donde tengo yo los {} de mi template

Código PHP:
Ver original
  1. $array = array(
  2.     "titulo";
  3.     "footer" => "aqui el footer"
  4. );

Que tendria que añadir una linea asin?
"menu" => "print_r('$menu<br>')",
  #11 (permalink)  
Antiguo 03/01/2013, 07:38
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: array

¿Qué quieres lograr exactamente? Es que no entiendo que es lo que quieres que muestre o sea vea exactamente el array que quieres crear
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #12 (permalink)  
Antiguo 03/01/2013, 10:23
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: array

Aquí $menu = $m1['Menu'];, lo único que estás haciendo es sobreescribiendo la variable $menu y siempre tu variable tendrá el último registro.

si quieres agregar por ejemplo un elemento con su clave y valor sería algo como:

Código PHP:
Ver original
  1. $menu['aqui va la clave (footer)'] = 'aqui va el valor (aqui el footer)';

Antes de continuar te recomiendo que entiendas el funcionamiento de los arrays:

http://php.net/manual/es/language.types.array.php

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #13 (permalink)  
Antiguo 03/01/2013, 10:37
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: array

Claro pero hago eso y solo me sale 1 menu y no los 2
  #14 (permalink)  
Antiguo 03/01/2013, 10:40
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 12 años, 11 meses
Puntos: 76
Respuesta: array

no los estas concatenando

Código PHP:
Ver original
  1. $m = mysqli_query($conectar, "SELECT Menu FROM Noticias WHERE Dominio = 'ejemplo'");
  2. while($m1 = mysqli_fetch_array($m))
  3. {
  4.   $menu[] = $m1['Menu'];
  5.  
  6. }
  7.  
  8. var_dump($menu);
  #15 (permalink)  
Antiguo 03/01/2013, 10:41
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: array

Claro pero yo quiero esto
"menu" => "El menu";

para que al poner {menu} en la plantilla web me salga los menus
  #16 (permalink)  
Antiguo 03/01/2013, 10:44
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: array

No te explicas bien. Lo que me pareció de tu primer mensaje es que quieres hacer algo así:
Código PHP:
Ver original
  1. $array = array(
  2.     'titulo';
  3.     'footer' => 'aqui el footer',
  4.     'menu' => $menu
  5. );
Pero no estoy seguro de haberte entendido.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #17 (permalink)  
Antiguo 03/01/2013, 10:47
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: array

XD2XD2 ya tiene varios mensajes iguales, pero no se da tiempo en escuchar lo que se le sugiere.

Pero en todos dice "SOLUCIONADO" ¿entonces ya no hay problema?

http://www.forosdelweb.com/f18/array-como-hace-1029602/

Deberías de leer las normas del foro XD2XD2.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #18 (permalink)  
Antiguo 03/01/2013, 10:50
 
Fecha de Ingreso: diciembre-2012
Mensajes: 223
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: array

Haber ya solucione lo de que aparecieran los menus y en este post estoy pidiendo ayuda sobre ponerlos en "menu" => "Aqui";
porque si hay pongo la variable solo me aparece 1 menu y no los 2 que tengo
  #19 (permalink)  
Antiguo 03/01/2013, 11:51
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: array

Pues leyendo el mismo tema del cual puse enlace el problema es igual, hasta el código.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: mysql
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 13:08.