Foros del Web » Programando para Internet » PHP »

Problema array PHP

Estas en el tema de Problema array PHP en el foro de PHP en Foros del Web. hola colegas de foros del web busco apoyo en un problema, estoy tratando de insertar los valores de un array dentro de los option de ...
  #1 (permalink)  
Antiguo 08/09/2014, 11:05
 
Fecha de Ingreso: septiembre-2014
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Exclamación Problema array PHP

hola colegas de foros del web busco apoyo en un problema, estoy tratando de insertar los valores de un array dentro de los option de un select en html veran el codigo que tengo es el siguiente:

<select name="producto"><option selected>Ninguno
<?php for($i=0;$i<=$num-1;$i++){?>
<option> <?php echo $cadena[$i]; ?>
<?php
}
?>
</select>

cadena esta inicializada como

cadena[]=array();

todo parece funcionar pero al ejecutarlo, dentro de los option me aparece

Notice: Array to String Conversion in: (ubicacion)

Alguien me puede ayudar para realizar esa conversion o que alternativa puedo tener?
Ayuda por favor
  #2 (permalink)  
Antiguo 08/09/2014, 11:46
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema array PHP

De hecho tu sintaxis al inicializar el array está mal.

Código PHP:
Ver original
  1. // MAL (crea un array de arrays)
  2. $cadena[]=array();
  3.  
  4. // BIEN (un sólo array)
  5. $cadena = array();

¿Se notan las diferencias?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/09/2014, 11:50
 
Fecha de Ingreso: abril-2011
Ubicación: Vilcún, cerca de Temuco
Mensajes: 67
Antigüedad: 13 años
Puntos: 5
Respuesta: Problema array PHP

Parece que $cadena es un array multidimensional.
Algo está fallando en la creación del array, tienes que mostrar ese código para pillar el error.

Aparte, cierra las etiquetas option:

<select name="producto"><option selected>Ninguno</option>
<?php for($i=0;$i<=$num-1;$i++){?>
<option> <?php echo $cadena[$i]; ?><</option>
<?php
}
?>
</select>
  #4 (permalink)  
Antiguo 08/09/2014, 12:44
 
Fecha de Ingreso: septiembre-2014
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema array PHP

Gracias amigos ya lo probe quitando [] del array pero solo me arroja un resultado de 47 que deben ser y en el <option> me sale abajo de ese resultado "undefined offset:1 in", no se como hacer para que el ciclo for realcione con las posisiones dejo el codigo ojala y me puedan indicar los errores que tengo para mejorar.

Código PHP:
Ver original
  1. <?php
  2. include("conexion.php");
  3. $idsesion = $_SESSION["id"];
  4. echo $idsesion;
  5. $consulta = mysql_query("SELECT nombre FROM productos where existencia>0 order by nombre");
  6. $cadena=array();
  7. $i=0;
  8. while($row = mysql_fetch_array($consulta))
  9. {
  10. $cadena=$row;
  11. }
  12. mysql_free_result($consulta);
  13. $num=count($cadena);
  14. ?>
  15. <form>
  16.   <table width="211" border="2" align="center" cellpadding="1" cellspacing="1" bordercolor="#9B378C" style="background-color: rgba(255, 255, 255, 0.5)">
  17.   <tr>
  18. <td width="135">&nbsp;<b>Producto</b>&nbsp;</td>
  19. <td width="61">&nbsp;<b>Cantidad</b>&nbsp;</td>
  20. <td width="135">&nbsp;<b>        </b>&nbsp;</td>
  21. <td width="135">&nbsp;<b>Producto</b>&nbsp;</td>
  22. <td width="61">&nbsp;<b>Cantidad</b>&nbsp;</td>
  23. </tr>
  24. <tr>
  25. <td>
  26. <select name="producto"><option selected>Ninguno
  27. <?php for($i=0;$i<=$num-1;$i++){
  28. ?>
  29. <option> <?php echo $cadena[$i]; ?>
  30. <?php
  31. }
  32. ?>
  33. </option>
  34. </select>
  35. </td>
  36. <td width="61"><input width="47" type="text" name="cantidad"/></td>
  37. <td><font>            </font></td>
  38. <td>
  39. <select name="producto"><option selected>Ninguno
  40. <?php for($i=0 ; $i<= $num-1 ; $i++){?>
  41. <option> <?php echo $cadena[$i]; ?>
  42. <?php
  43. }
  44. ?>
  #5 (permalink)  
Antiguo 08/09/2014, 12:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema array PHP

El problema, es que un tu while() sobreescribes la misma variable cada vez y eso definitivamente está mal.

Código PHP:
Ver original
  1. // MAL
  2. $cadena=array();
  3. while($row = mysql_fetch_array($consulta))
  4. {
  5.   $cadena=$row;
  6. }
  7.  
  8. // BIEN
  9. $cadena=array();
  10. while($row = mysql_fetch_array($consulta))
  11. {
  12.   $cadena []= $row;
  13. }

¿Se entiende?

El otro problema es que mysql_fetch_array() devuelve un array() por lo cual tendrías un array de arrays de nuevo.

Entonces deberás acceder al índice correcto más adelante, o bien, agregar sólo el valor que deseas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 08/09/2014, 13:18
 
Fecha de Ingreso: septiembre-2014
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema array PHP

Gracias de nuevo amigo, veras mi interes es que todos los elementos derivados de la consulta se guarden en un array y despues esos elementos mostrarlos en un <select>por medio de los <option> y gracias a tu indicacion por lo que veo ya reconoce los elementos del array solo que ahora en lugar de mostralos me manda Notice: Array to String Conversion in: (ubicacion) 47 veces
entiendo que hay que convertir el array a string, o eso supongo, o hay alguna manera de representar los elementos del array sin el print_r, por que note que el print_r muestra aparte los atributos del array. Mira dejare una imagen de los resultados.

[IMG]file:///C:/Users/Comercio/Pictures/nuevo-1.JPG[/IMG]
  #7 (permalink)  
Antiguo 08/09/2014, 13:20
 
Fecha de Ingreso: septiembre-2014
Mensajes: 4
Antigüedad: 9 años, 7 meses
Puntos: 0
Respuesta: Problema array PHP

Lo siento no entiendo por que no se carga la imagen.
  #8 (permalink)  
Antiguo 08/09/2014, 13:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema array PHP

Es lo que te he dicho antes: mysql_fetch_array() devuelve un array.

Por eso, en el while() está agregando dicho array y obtienes al final un array de arrays.

Ahora, puedes solucionarlo de dos formas:

a. Agregando únicamente el valor que deseas en el while() y no el array entero

Código PHP:
Ver original
  1. while (/* ... */) {
  2.   $cadena []= $row['columna_que_contiene_el_src_de_la_imagen'];  
  3. }

b. Leer el valor que deseas en el for() posterior que hace uso de dicho array

Código PHP:
Ver original
  1. for (/* ... */) {
  2.   echo $cadena[$i]['columna_que_contiene_el_src_de_la_imagen'];
  3. }

¿Se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, select
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 17:02.