Foros del Web » Programando para Internet » PHP »

Curioso: echo muestra array pero no soy capaz de guardarlo

Estas en el tema de Curioso: echo muestra array pero no soy capaz de guardarlo en el foro de PHP en Foros del Web. Hola a todos! Alguien sabria decirme porque este codigo: Código PHP: <?php include  "conexion.php" ; $idIngrediente = $_POST [ "idIngrediente" ];      for ( $i = 0 ...
  #1 (permalink)  
Antiguo 05/08/2012, 02:42
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Curioso: echo muestra array pero no soy capaz de guardarlo

Hola a todos!
Alguien sabria decirme porque este codigo:

Código PHP:
<?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 

    for (
$i=0;$i<count($idIngrediente);$i++)
       {
       echo  
$i ": " $idIngrediente[$i];
       }

?>
funciona a la perfeccion, y sin embargo si intento meterlo en variables para usarlas mas adelante de forma individual, con este codigo:

Código PHP:
<?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 

    for (
$i=0;$i<count($idIngrediente);$i++)
       {
       
$ingrediente[$i]=$idIngrediente[$i];
       echo 
$ingrediente[$i];
       }

?>
no muestra nada en pantalla????

Como podria entonces guardar cada elemento $idIngrediente[$i] en una variable para poder usarlos mas adelante en caso de necesidad???

Gracias!
__________________
Tecnología y tutoriales
  #2 (permalink)  
Antiguo 05/08/2012, 04:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Y si antes de iniciar el for inicializas $ingrediente?

$ingrediente = array();
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 05/08/2012, 06:56
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Pues muchas gracias pero sigue sin funcionar....
Este es el codigo:
Código PHP:
include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 
$ingrediente = array();
    for (
$i=0;$i<count($idIngrediente);$i++)
       {
       
$ingrediente[$i]=$idIngrediente[$i];
       echo 
$ingrediente[$i];
       } 
__________________
Tecnología y tutoriales
  #4 (permalink)  
Antiguo 05/08/2012, 07:09
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Por que no copias el array directamente fuera del for

Código PHP:
Ver original
  1. for(...){
  2. }
  3. $ingrediente = $idIngrediente;
  4.  echo $ingrediente[1];
Ademas no entiendo la necesidad de duplicar el array $idIngrediente

Saludos!
  #5 (permalink)  
Antiguo 05/08/2012, 08:26
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

primera duda te da algún error? personalmente para recorrer arreglos me gusta mas usar el foreach
si haces esto
Código PHP:
Ver original
  1. foreach($idIngrediente as $value) {
  2.    $ingrediente[] = $value;
  3. }

Cita:
Iniciado por dryant Ver Mensaje
Hola a todos!

Código PHP:
<?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 

    for (
$i=0;$i<count($idIngrediente);$i++)
       {
       
$ingrediente[$i]=$idIngrediente[$i];
       echo 
$ingrediente[$i];
       }

?>
aunque acá hay algo que me parece de errado para que crear otro arreglo totalmente igual??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 05/08/2012, 09:18
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Pero como sabes que no se està guardando? por que no intentas hacer lo siguiente:

<?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"];

for ($i=0;$i<count($idIngrediente);$i++)
{
$ingrediente[$i]=$idIngrediente[$i];
}
print_r($ingrediente);
?>
  #7 (permalink)  
Antiguo 05/08/2012, 09:55
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Hola.
Antes que nada gracias a todos por las respuestas.

Vayamos por partes.

a carlos_belisario:

Cita:
primera duda te da algún error?
No. No me da ningun error simplemente que si lo hago con un for como en este codigo:

Código PHP:
 <?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 

    for (
$i=0;$i<count($idIngrediente);$i++)
       {
       echo  
$i ": " $idIngrediente[$i];
       }

?>
si me muestra todas las variables que recojo del formulario, pero si quiero sacar de forma individual cada elemento del array en diferentes partes del codigo de esta forma:

Código PHP:
 <?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"]; 

    echo 
$idIngrediente[0];
... 
mas codigo.....
    echo 
$idIngrediente[1];
... 
mas codigo.....
    echo 
$idIngrediente[2];
       }

?>
entonces no me saca el valor en pantalla..... no entiendo porque ya que en principio parece que es lo mismo que el for....


Por otro lado, si lo hago de la segunda forma que me has comentado carlos_belisario quedando asi:

Código PHP:
<?php
$idIngrediente
=$_POST['idIngrediente'];
     foreach(
$idIngrediente as $value) {
       
$ingrediente[] = $value;
    }
    echo 
$ingrediente[1];
.... 
mas codigo....
   echo 
$ingrediente[0]; etc

?>
Tmpoco me saca los valores en pantalla.... simplemente se queda en blanco.
Y en realidad no quiero tampoco duplicar el array, solo intente duplicarlo para ver si podia usar cada elemento del array en diferentes partes del codigo...

------------------------

A jesushalfonzo

Cita:
Pero como sabes que no se està guardando? por que no intentas hacer lo siguiente:
Pues porque al darle un echo idIngrediente[0]; no me muestra nada.

E igualmente me pasa con el codigo que me has dado :

Código PHP:
<?php

include "conexion.php";
$idIngrediente=$_POST["idIngrediente"];

for (
$i=0;$i<count($idIngrediente);$i++)
{
$ingrediente[$i]=$idIngrediente[$i];
}
print_r($ingrediente);
?>
que solo me muestra en pantalla esto:

Código PHP:
Array ( [0] => [1] => [2] => ) 
Como entonces se puede sacar cada elemento del array por separado y cuando lo necesite en diferentes partes del codigo???

Toda la informacion que leo por internet se hace siempre con todos los elementos listados de forma continua con un for, un while, etc.. pero no encuentro informacion de como sacar un elemento del array recogido del formulario....

Un saludo
__________________
Tecnología y tutoriales
  #8 (permalink)  
Antiguo 05/08/2012, 13:58
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

pues esta entrando un valor vacio, has esto y dinos que te da

Código php:
Ver original
  1. echo "<pre>";
  2. var_dump($_POST["idIngrediente"]);
  3. echo "</pre>";
y dinos que te muestra, porque el problema se ve como que si estuvieras enviando el valor de los inputs vacíos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #9 (permalink)  
Antiguo 05/08/2012, 15:32
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Creo que el amigo carlos_belisario tiene la razon, porque el Array se está formando, sólo que al parecer llega vacio y se forma vacio.

Por que no nos copias el formulario que estas usando para capturar los datos? puede ser que el problema esté ahí.
  #10 (permalink)  
Antiguo 05/08/2012, 17:08
Avatar de GerardM  
Fecha de Ingreso: agosto-2012
Ubicación: Caracas
Mensajes: 5
Antigüedad: 11 años, 8 meses
Puntos: 1
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Corrígeme si me equivoco, pero creo que $idIngrediente no es un array y por eso no aparece nada en pantalla.
  #11 (permalink)  
Antiguo 06/08/2012, 02:40
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Pues al poner esto:

Código PHP:
    echo "<pre>";
    
var_dump($_POST["idIngrediente"]);
    echo 
"</pre>"
Me sale esto:


Cita:
array(3) {
[0]=>
string(0) ""
[1]=>
string(0) ""
[2]=>
string(0) ""
}
y el formulario de entrada es este:


Código PHP:
<?php

include "conexion.php";
include 
"functions.php";


echo
    
"<form action='resultadoBusqueda.php' method='POST'>




    <select name='idIngrediente[]' multiple='multiple' size='20'>"
;

listaIngredientes();
    

 echo 
"   </select>



<input type='submit'>

    </form>"
;
?>
idIngrediente[] se manda como array no?
__________________
Tecnología y tutoriales

Última edición por dryant; 06/08/2012 a las 04:45
  #12 (permalink)  
Antiguo 06/08/2012, 09:28
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

listaIngredientes(); tienes que mostrarnos que te retorna, debería de retornar algo como esto
Código HTML:
Ver original
  1. <option value="valor1">opcion1</option>
  2. <option value="valor2">opcion2</option>
y así sucesivamente, lo que creo según lo que estas mostrando (aunque estoy adivinando) es que el value del option no esta lleno o no lo creaste por eso unicamente te envía un string vacío
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 06/08/2012, 09:52
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Cita:
Iniciado por carlos_belisario Ver Mensaje
listaIngredientes(); tienes que mostrarnos que te retorna, debería de retornar algo como esto
Código HTML:
Ver original
  1. <option value="valor1">opcion1</option>
  2. <option value="valor2">opcion2</option>
y así sucesivamente, lo que creo según lo que estas mostrando (aunque estoy adivinando) es que el value del option no esta lleno o no lo creaste por eso unicamente te envía un string vacío
Correcto!!!!! ahora mirando con mas detenimiento, me he dado cuenta que efectivamente todo el rato ha estado mandando strings vacios....

Comprobare el codigo de nuevo y veré donde esta el error....

Muchisimas gracias a todos por vuestra ayuda!!!
__________________
Tecnología y tutoriales
  #14 (permalink)  
Antiguo 06/08/2012, 10:15
Avatar de dryant  
Fecha de Ingreso: agosto-2009
Ubicación: Malaga, Ceuta, España....
Mensajes: 283
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Curioso: echo muestra array pero no soy capaz de guardarlo

Para aclarar lo que ha pasado y que pueda servir para otros usuarios cuento aqui al final la solucion.
He quitado del formulario de busqueda la funcion "listaIngredientes()" y la he sustituido por el codigo correspondiente para que sea mas legible.

Este es el codigo que habia y el cual me mandaba strings vacios:

Código PHP:
<?php

include "conexion.php";
include 
"functions.php";


echo
    
"<form action='resultadoBusqueda.php' method='POST'>




    <select name='idIngrediente[]' multiple='multiple' size='20'>"
;

$i=0;

            
$consulta2=mysql_query("SELECT * FROM ingredientes ORDER BY nombreIngrediente");
            while (
$fila=mysql_fetch_array($consulta2))
                {
                    echo 
"<option value='".$fila['idIngrediente'][$i]."'>".$fila['nombreIngrediente']."</option>";
                    
$i++;
                }    

 echo 
"   </select>



<input type='submit'>

    </form>"
;
?>
Como se puede ver en el while estaba el error,

Código PHP:
{
                    echo 
"<option value='".$fila['idIngrediente'][$i]."'>".$fila['nombreIngrediente']."</option>";
                    
$i++;
                } 
ya que en un principio haciendo pruebas una y otra vez, le añadi un valor multidimensional al array al ponerle [$i] detras de $fila['nombreIngrediente']

Como decian los compañeros que tan amablemente me han estado ayudando, no hacia falta crear de nuevo otro array para duplicar el primero, ya que los datos ya se reciben en un array, y lo unico que habia que hacer para usar cualquier elemento del array en cualquier parte del codigo era llamarlo con un:

Código PHP:
$idIngrediente[0
Siendo el 0 sustituible por cualquier numero entero dentro del rango 0-numero de elementos, el cual se podia obtener, el numero de elementos con un count.

Como soy novato, esta explicacion no es 100% segura, y si me equivoco en algo que haya escrito, que alguien lo corrija.

Espero que este tema ayude a otras personas, y muchas gracias a carlos_belisario, GerardM, jesushalfonzo, gjx2 y Triby por la ayuda prestada.

Un saludo y (posiblemente) hasta dentro de poco ;)
__________________
Tecnología y tutoriales

Etiquetas: echo, muestra, variables
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 01:29.