Foros del Web » Programando para Internet » PHP »

Falla en arreglo array

Estas en el tema de Falla en arreglo array en el foro de PHP en Foros del Web. Hola amigos, por favor quisiera me ayudaran que le falta a este codigo: <?php session_start(); $autori=$_POST["cantidad_autorizada"]; if(isset($_SESSION['carro'])) $carro=$_SESSION['carro']; $carro2=insert_into_array($carro,cantidad_autoriza da,$autori); //linea 6 $_SESSION['carro']=$carro2; header("Location:listadoNoatendido.php?".SID); ?> ...

  #1 (permalink)  
Antiguo 12/11/2008, 12:21
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta Falla en arreglo array

Hola amigos, por favor quisiera me ayudaran que le falta a este codigo:
<?php
session_start();
$autori=$_POST["cantidad_autorizada"];
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
$carro2=insert_into_array($carro,cantidad_autoriza da,$autori); //linea 6
$_SESSION['carro']=$carro2;
header("Location:listadoNoatendido.php?".SID);
?>
debido a que esta arrojando el sgte msje:
Fatal error: Call to undefined function: insert_into_array() in /data/members/free/tripod/es/h/o/b/hoberwilly/htdocs/agregacarrito2.php on line 6
  #2 (permalink)  
Antiguo 12/11/2008, 12:23
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Respuesta: Falla en arreglo array

Creo que el error es bastante explicativo, la función insert_into_array no está definida, no existe.
  #3 (permalink)  
Antiguo 12/11/2008, 12:27
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Falla en arreglo array

No es que le falte nada. Más bien le sobra:

... Call to undefined function: insert_into_array() ...

Esa función es una función a medida, programada por alguien. Te faltaría "programar" el resto del código.
  #4 (permalink)  
Antiguo 12/11/2008, 12:46
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Y con esto:
<?php
session_start();
function insert_into_array($array,$ky,$val)
{
$n = $ky;
foreach($array as $key => $value)
{
$backup_array[$key] = $array[$key];
}
$upper_limit = count($array);
while($n <= $upper_limit)
{
if($n == $ky)
{
$array[$n] = $val;
echo $n;
}
else
{
$i = $n - "1";
$array[$n] = $backup_array[$i]; //linea21
}
$n++;
}
return $array;
}

$value=$_POST["cantidad_autorizada"];
if(isset($_SESSION['carro']))
$list=$_SESSION['carro'];
$key="cantidad_autorizada";
$new=insert_into_array($list,$key,$value);
$_SESSION['carro']=$new;
header("Location:listadoNoatendido.php?".SID);
?>

cantidad_autorizada
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1048576 bytes) in /data/members/free/tripod/es/h/o/b/hoberwilly/htdocs/agregacarrito2.php on line 21

Que significa el erro?????
p.d. esto es en base al manual php (ref. jhall at jadeinternet dot net 16-Dec-2002 07:34)
  #5 (permalink)  
Antiguo 12/11/2008, 13:38
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

que es lo que exactamente hace insert_into_array()..

porque pareciera que lo unico que hace es insertar registros en una matriz pero de forma clave=>valor..

aunque en algun lugar se queda haciendo bucle que no termina.. y ahi viene el error de memoria..
  #6 (permalink)  
Antiguo 12/11/2008, 13:52
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Segun el manual:
Es una función que permite añadir los datos a un lugar particular en un conjunto sin perder cualquier otro dato en la serie.

segun ejemplo:
<?php
$list = array( "0" => "zero",
"1" => "one",
"2" => "two",
"3" => "three",
"4" => "four",
"5" => "five",
"6" => "six");
$value = "New Number Three";
$key = "3";
$new = insert_into_array($list,$key, $value);
?>

Will Return:

$list =
Array
(
[0] => zero
[1] => one
[2] => two
[3] => three
[4] => four
[5] => five
[6] => six
)

$new=
Array
(
[0] => zero
[1] => one
[2] => two
[3] => New Number Three
[4] => three
[5] => four
[6] => five
[7] => six
)
y eso justamente es lo que intento realizar!!!!!!!!!!!!!!!!!!!!!!!
  #7 (permalink)  
Antiguo 12/11/2008, 13:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Falla en arreglo array

mmm... si es un arreglo, y conoces su indice (o posición) lo puedes hacer directamente

Código PHP:
$foo = array(
  
'candy' => 'bar',
  
'baz' => 'buzz',
  
260 => '???'
);

$foo[260] = '!!!';

$foo['baz'] = 'OOkA'

no veo el uso de tu función ... vaya
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 12/11/2008, 14:09
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Lo que hace es agregar el array $autori
caja de texto(name=cantidad_autorizada[])
----------------
1505
1555
2155
2155
etc

en un lugar especifico del array $carro:
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'cantidad_autorizada'=>$autori,'producto'=>$r ow['producto'],'precio'=>$row['precio'],'id'=>$id);

p.d. estoy en lo correcto en recoger todos los datos de la caja de texto con name=cantidad_autorizada[] ??????????????????
o es que le falta su indice

para despues recojerlo:
$autori=$_POST["cantidad_autorizada"];
  #9 (permalink)  
Antiguo 12/11/2008, 14:09
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Falla en arreglo array

La idea es insertar un nuevo elemento en un array, desplazando todos los que hay a partir de ahí una posición hacia adelante.

En principio, debería funcionar, pero el error que recibes indica que el arreglo que intentas usar es demasiado grande para ser manejado por la memoria. PHP limita la memoria disponible para scripts, variables, etc, y en tu caso la configuración en el php.ini no permite que se ocupe tanta memoria como pretendes ocupar.

Una alternativa sería que insertes el elemento directamente al final (una asignación simple) y que hagas después una llamada a cualquiera de las funciones que existen para hacer ordenaciones sobre arreglos, si es que quieres moverlo a otra posición... o incluso que hagas los intercambios necesarios una vez añadido (aunque puede ser lento y poco eficiente).

Un saludo.
  #10 (permalink)  
Antiguo 12/11/2008, 14:20
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Gracias Deschamps antetodo por tu desinteresada ayuda,
quizas sea por esto, cuando me dio el error el mensaje completo fué:
cantidad_autorizadaFatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1048576 bytes) in /data/members/free/tripod/es/h/o/b/hoberwilly/htdocs/agregacarrito2.php on line 21

no tendria nada que ver con el array que paso con el submit que no tenga indice??????
disculpame si estoy en lo incorrecto!!!!
  #11 (permalink)  
Antiguo 12/11/2008, 14:24
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

Entonces lo que deseas hacer es reemplazar el valor de una clave en el arreglo.. segun lo que explicas de tu ejemplo.. entonces te serviria si lo hacemos asi:

Código PHP:
<?php
function asociar ($list$key$value) {
    foreach (
$list as $clave => $valor) {
        if (
$clave == $key)
            
$list[$clave] = $value;
    }
    return 
$list;
}

$list = array("0" => "zero""1" => "one""2" => "two""3" => "three""4" => "four""5" => "five""6" => "six");

echo 
"<pre>";
print_r($list);
echo 
"</pre>";

$key 4;
$value "nuevo cuatro";
$final asociar ($list$key$value);

echo 
"<pre>";
print_r($final);
echo 
"</pre>";
?>
  #12 (permalink)  
Antiguo 12/11/2008, 14:33
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: Falla en arreglo array

Cita:
Iniciado por hoberwilly Ver Mensaje
no tendria nada que ver con el array que paso con el submit que no tenga indice??????
Hombre. Se supone que los parámetros que recibe la función se deben ajustar a sus requisitos, es decir, que el array que pasas, es tal, que el índice existe según lo manipula la función, etc. No me he mirado el código, pero si crees que el problema es que no pasas los parámetros correctos... entonces debe ser eso :)
  #13 (permalink)  
Antiguo 13/11/2008, 18:43
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Hola amigos,
por favor me falta un poquito nada mas (creo) para poder finalizar, pero necesito de su ayuda para visualizar cual es el error dentro del codigo que es el sgte:
agregacarrito2.php
------------------------
<?php
session_start();
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
include('conec.php');
conectarse();
$autori=$_POST["cantidad_autori"]; //Array ( [0] => 20 [1] => 30 )
$id=$_POST["id"]; //Array ( [0] => 03502 [1] => 05408 )
foreach ($id as $valor){ //recojo solo los valores del array de id
for($i=0; $i<count($id); $i++) //intento que ingrese 1º el primer codigo y despues el otro
{
$qry=mysql_query("select * from catalogo where id='".$valor."'"); //realizo consulta con ese 1er codigo
$row=mysql_fetch_array($qry);

foreach($autori as $valor2){ //entrego el primer valor del array autori
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'medicamento'=>$row['medicamento'],'precio'=>$row['precio'],'id'=>$valor,'cantidad_autorizada'=>$valor2); //rediseño el array carro ya creado
//return $carro;
}//cierro for
}//cierro foreach
}//cierro foreach
//print_r($autori);//print_r($id);
print_r($carro);
$_SESSION['carro']=$carro;
header("Location:listadoNoatendido.php?".SID);
?>

lo que intento es añadir a un array carro que ya esta creado, el array cantidad autorizada pero me sale de esta manera:

Array ( [18c8f62754ea20dcdc9ee292db1b46fd] => Array ( [identificador] => 18c8f62754ea20dcdc9ee292db1b46fd [cantidad] => 10 [medicamento] => Fentanilo [precio] => 55.00 [id] => 03502 [cantidad_autorizada] => 0 ) [06d84b98e0d1df882dc302c03a209707] => Array ( [identificador] => 06d84b98e0d1df882dc302c03a209707 [cantidad] => 10 [medicamento] => Petidina Clorhidrato [precio] => 100.00 [id] => 05408 [cantidad_autorizada] => 0 ) [4410ec34d9e6c1a68100ca0ce033fb17] => Array ( [identificador] => 4410ec34d9e6c1a68100ca0ce033fb17 [cantidad] => [medicamento] => Petidina Clorhidrato [precio] => 100.00 [id] => 05408 [cantidad_autorizada] => 30 ) )

//en los cero de rojo quiero que se ingresen las cantidades autorizadas, para ej 20 y 30
o quizas le falte algo mas que no se me ocurre que puede ser????

Disculpen pero es importante tambien:
Array ( [18c8f62754ea20dcdc9ee292db1b46fd] => Array ( [identificador] => 18c8f62754ea20dcdc9ee292db1b46fd [cantidad] => 10 [medicamento] => Fentanilo [precio] => 55.00 [id] => 03502 [cantidad_autorizada] => 0 )
[06d84b98e0d1df882dc302c03a209707] => Array ( [identificador] => 06d84b98e0d1df882dc302c03a209707 [cantidad] => 10 [medicamento] => Petidina Clorhidrato [precio] => 100.00 [id] => 05408 [cantidad_autorizada] => 0 )
[4410ec34d9e6c1a68100ca0ce033fb17] => Array ( [identificador] => 4410ec34d9e6c1a68100ca0ce033fb17 [cantidad] => [medicamento] => Petidina Clorhidrato [precio] => 100.00 [id] => 05408 [cantidad_autorizada] => 30 )
)
Esta ultima parte de color rojo y subrayado no debe figurar...gracias antetodo por su ayuda que me puedan brindar

Última edición por GatorV; 13/11/2008 a las 19:35
  #14 (permalink)  
Antiguo 13/11/2008, 18:47
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

Puedes indentar tu codigo y utilizar BBCODE para ver mejor tu error
  #15 (permalink)  
Antiguo 13/11/2008, 18:49
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Agradesco antetodo erlingfiallos tu ayuda,
Puedes indentar tu codigo y utilizar BBCODE para ver mejor tu codigo????
no te entiendo

Quizas puedas ingresar al siguiente url:
http://usuarios.lycos.es/hoberwilly/
y poder mejor entender el problemita

gracias...

Última edición por GatorV; 13/11/2008 a las 19:35
  #16 (permalink)  
Antiguo 13/11/2008, 19:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Falla en arreglo array

por favor....

usa BBCode

Código:
[highlight=php]<!-- AQUI PON TU CODIGO -->[/highlight]
con esto resaltas tu código con colores... ya de a perdis usa... [php]<!-- CODIGO -->[/php]

así le echas la mano a todos que lo puedan leer en el foro, de veras!


por cierto... indentar es ponerle espacios... mira

(esto se lee muy mal)
Código PHP:
function foo ($bar){
if (
$bar) {
echo 
"Candy";
// etc...

en cambio, esto bien... hasta gusto da leerlo!!
Código PHP:
function foo ($bar)
{
  if (
$bar)
  {
    echo 
"Candy";
  } 
// etc...

¿entiendes??


suerte....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 13/11/2008, 22:05
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

gracias @pateketrueke yo no tenia ganas de explicar que es y como utilizar el BBCODE..

entonces si es asi.. ya podemos seguir adelante para tratar de resolver el problema de @hoberwilly.
  #18 (permalink)  
Antiguo 14/11/2008, 07:09
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Gracias por las sugerencias, entonces el codigo queda así (indentado):
agregacarrito2.php
------------------------
<?php
session_start();
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
include('conec.php');
conectarse();
$autori=$_POST["cantidad_autori"];
$id=$_POST["id"];

foreach ($id as $valor){
for($i=0; $i<count($id); $i++)
{
$qry=mysql_query("select * from catalogo where id='".$valor."'");
$row=mysql_fetch_array($qry);
foreach($autori as $valor2)
{
$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cant idad,'medicamento'=>$row['medicamento'],'presentacion'=>$row['presentacion'],'concentracion'=>$row['concentracion'],'formaFarmaceutica'=>$row['formaFarmaceutica'],'precio'=>$row['precio'],'id'=>$valor,'cantidad_autorizada'=>$valor2);
//return $carro;
}
}
}
print_r($autori);
print_r($id);
print_r($carro);
$_SESSION['carro']=$carro;
header("Location:listadoNoatendido.php?".SID);
?>

gracias por lo que me puedan ayudan...
  #19 (permalink)  
Antiguo 14/11/2008, 07:15
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: Falla en arreglo array

mmm. Esto es indentado y BBCode:
Código php:
Ver original
  1. <?php
  2. if(isset($_SESSION['carro']))
  3.     $carro=$_SESSION['carro'];
  4. include('conec.php');
  5. conectarse();
  6. $autori=$_POST["cantidad_autori"];
  7. $id=$_POST["id"];
  8.  
  9. foreach ($id as $valor){
  10.     for($i=0; $i<count($id); $i++) {
  11.         $qry=mysql_query("select * from catalogo where id='".$valor."'");
  12.         $row=mysql_fetch_array($qry);
  13.         foreach($autori as $valor2) {
  14.             $carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'medicamento'=>$row['medicamento'],'presentacion'=>$row['presentacion'],'concentracion'=>$row['concentracion'],'formaFarmaceutica'=>$row['formaFarmaceutica'],'precio'=>$row['precio'],'id'=>$valor,'cantidad_autorizada'=>$valor2);
  15.             //return $carro;
  16.         }
  17.     }
  18. }
  19. print_r($autori);
  20. print_r($id);
  21. print_r($carro);
  22. $_SESSION['carro']=$carro;
  23. header("Location:listadoNoatendido.php?".SID);
  24. ?>
Me pregunto por qué usas foreach e inmediatamente después usas un for, ambos para recorrer el array .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #20 (permalink)  
Antiguo 14/11/2008, 07:55
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

Es extrañamente raro ver un foreach y un for anidados en tu codigo cuando no se entiende bien que hacen..

supongo que $id o $_POST['id'] que es lo mismo son un arreglo.. y parece que ese arreglo contiene id de productos seleccionados.. (creo).. al igual que cantidad autorizada o _POST["cantidad_autori"] parecen arreglos..
  #21 (permalink)  
Antiguo 14/11/2008, 15:24
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Efectivamente erlingfiallos,
1. $id o $_POST['id'] es un arreglo, y estos contienen id de productos seleccionados, como se confirma en: Array ( [0] => 03502 [1] => 05408 )
2. $autori($_POST['cantidad_autori']) que tambien es un arreglo contienen cantidades en las cuales el ADMINISTRADOR a autorizado

Con respecto al codigo lo he modificado,
Código php:
Ver original
  1. <!--
  2. <?php
  3. if(isset($_SESSION['carro']))
  4.       $carro=$_SESSION['carro'];
  5. include('conec.php');
  6. conectarse();
  7. $autori=$_POST["cantidad_autori"];     //Array ( [0] => 20 [1] => 20 )
  8. $id=$_POST["id"];                                  //Array ( [0] => 03502 [1] => 05408 )
  9.  
  10. for($i=0; $i<count($id); $i++)          //intento recorrer con un for para i=0...
  11. {
  12.            $qry=mysql_query("select * from catalogo where id='".$id[i]."'");   //...que liste por el primer valor (ejm 03502)
  13.            $row=mysql_fetch_array($qry);
  14.            $carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'medicamento'=>$row['medicamento'],'precio'=>$row['precio'],'id'=>$id[i],'cantidad_autorizada'=>$autori[i]);
  15.            //return $carro;
  16. }
  17. //luego que ingrese el i=1, que por cierto el count($id)=2
  18. print_r($autori);
  19. print_r($id);
  20. print_r($carro);  
  21. $_SESSION['carro']=$carro;    //lo guardo en una sesion
  22. header("Location:listadoNoatendido.php?".SID);
  23. ?>
  24.  -->
Lo que realiza es ingresar en un array creado ($carro=$_SESSION['carro']; //LINEA 4) la cantidad autorizada por el ADMINISTRADOR pero que este relacionado con su id (where id='".$id[i]."')...gracias de antemano por la ayuda que me puedan brindar
  #22 (permalink)  
Antiguo 14/11/2008, 16:26
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

ok.. estoy haciendo mi experimento.. pero antes que lo escriba.. solo quiero saber si la clave de $autori siempre es igual a la clave de $id..

me refiero a que ambos tienes como clave el valor 0, 1 y asi sucesivamente..


Código PHP:
$autori = array (
    
'0' => '20'
    
'1' => '20'
);

$id = array (
    
'0' => '03502',
    
'1' => '05408'
); 
  #23 (permalink)  
Antiguo 14/11/2008, 16:33
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Afirmativo,
erlingfiallos te cuento que me falta una pequeñito detalle que quizas no lo veo pero me puedas ayudar por favor coloco el codigo:

Código php:
Ver original
  1. <!--
  2. <?php
  3. if(isset($_SESSION['carro']))
  4.      $carro=$_SESSION['carro'];
  5. include('conec.php');
  6. conectarse();
  7. $autori=$_POST["cantidad_autori"];
  8. $od=$_POST["id"];
  9.  
  10. foreach($od as $id)
  11. {
  12.     $qry=mysql_query("select * from catalogo where id='".$id."'");
  13.     $row=mysql_fetch_array($qry);
  14.     foreach($autori as $autori22)
  15.     {
  16.     $carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'medicamento'=>$row['medicamento'],'precio'=>$row['precio'],'id'=>$id,'cantidad_autorizada'=>$autori22);
  17.     break;
  18.     }
  19. }
  20.  
  21. print_r($autori);
  22. print_r($od);
  23. print_r($carro);
  24. $_SESSION['carro']=$carro;
  25. header("Location:listadoNoatendido.php?".SID);
  26. ?>
  27. -->

quizas lo puedas observar el resultado en el link:
http://usuarios.lycos.es/hoberwilly/
seleccionas el radioboton del pedido 107, digitas en cantidades autorizadas y visualiza y evalua los print que emiten ...gracias por tu ayuda ...
las cantidades autorizadas son las mismas ...ya los coloque en su sitio pero tiene que print las que tu autorizastes...en el codigo necesita acomodarlo!!!!!!!
  #24 (permalink)  
Antiguo 14/11/2008, 16:44
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

Espero que entiendas lo que hice, si algo falla es porque no tengo tu BD y algunas cosas las probe creandome arreglos.. pero creo que esto te ayudara a entender mejor..

Código PHP:
<?php
session_start
();
if(isset(
$_SESSION['carro']))
    
$carro=$_SESSION['carro'];
include(
'conec.php');
conectarse();
$autori $_POST["cantidad_autori"];
$id $_POST["id"];

// el arreglo de id's se pasa a valores separados por comas
$arrId implode(","$id);

// realizas la consulta pasando los parametros separados por comas
$qry mysql_query("SELECT * FROM catalogo WHERE id IN (".$arrId.")");

// si hay algun error.. adios!!.. y veamos el error
if (!$qry)
    die (
"Error: "mysql_error());

// si hay resultados entonces continuamos
if (mysql_num_rows($qry) != 0) {
    
// vaciamos el resultado de la consulta a $row
    
$row mysql_fetch_array($qryMYSQL_ASSOC);
    
// recorremos el arreglo $autori, esto se hara por cada elemento de $autori
    
foreach($autori as $clave => $valor) {
        
$carro[md5($id[$clave])] = array (
            
'identificador'=>md5($id[$clave]),
            
'cantidad'=>$cantidad,
            
'medicamento'=>$row['medicamento'],
            
'precio'=>$row['precio'],
            
'id'=>$id[$clave],
            
'cantidad_autorizada'=>$valor
        
);
    }
}

echo 
"<pre>";
print_r($carro);
echo 
"</pre>";

$_SESSION['carro'] = $carro;
?>
  #25 (permalink)  
Antiguo 14/11/2008, 16:52
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Bien lo analizare el codigo posteado, solo una consultita esto lo realizaste con el ultimo post que te envie:
...quizas lo puedas observar el resultado en el link:
http://usuarios.lycos.es/hoberwilly/
seleccionas el radioboton del pedido 107, click atender pedido, digitas en cantidades autorizadas y visualiza y evalua los print que emiten ...gracias por tu ayuda ...


de ser negativo como te comente solo falta que el codigo decirle si ya entro el primer codigo
por ejemplo 03502 en foreach($od as $id) decirle que tambien (y que solo) ingrese solo la primera cantidad autorizada y que corte (break) para iniciar otro foreach($od as $id) que para el ejemplo el segundo codigo 05408, idem que aqui ingrese tambien (y solamente) la segunda cantidad autorizada...gracias espero a ver sido claro en todo caso dime donde no se entiende...
  #26 (permalink)  
Antiguo 14/11/2008, 17:06
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

Como veras quite tus 2 ciclos.. y se quedo como 1 solo.. modifique tu consulta para que traiga las filas de los id's que le has pasado.. a diferencia de como lo tenias antes.. tenia que hacerse una consulta por id.. ahora es diferente..

Por consiguiente.. digamos que el ciclo se ejecutara el numero de veces o resultados existentes en la consulta..
  #27 (permalink)  
Antiguo 14/11/2008, 17:23
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Genial erlingfiallos, funciona de mil maravillas te agradesco mucho por la ayuda...
pero solo falta una cosita que me gustaria sacarme el clavo, en el print todo anda bien pero he perdido esto la cantidad:
'cantidad'=>$cantidad, //que viene de origen de otro php el cual el USUARIO lleno como cantidad solicitada (ojo que es muy diferente a la cantidad autorizada por el ADMINISTRADOR la que hemos visto), en realidad quisiera no perder ese dato en mi array $carro...por favor ayudame
  #28 (permalink)  
Antiguo 14/11/2008, 17:54
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

mmm.. ya me habia fijado.. pero en el segundo ejemplo que escribiste.. ya no estaba entonces pense que no era necesario..

pero en efecto.. utilizas la variable cantidad pero es una variable que no existe.. no se si tambien la pasas por la url o esta en alguna sesion..

solo eso te haria falta.. setear el valor de esa variable..
  #29 (permalink)  
Antiguo 14/11/2008, 18:06
Avatar de hoberwilly  
Fecha de Ingreso: julio-2008
Ubicación: Lima - Perú
Mensajes: 769
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Falla en arreglo array

Erlingfiallos al respecto,
1. en agregacarrito2.php no existe, y no la paso por la url
2. esta guardado en la sesion carro creado en su origen por el USUARIO
si necesitas algun codigo que pueda ayudar me avisas por favor...(agregarkar.php)

no se servira pero:
a. si lo paso por la url los valores de esta cantidad tambien,
<td align="center">
<input type="text" name="cantidad_autori[]" id="cantidad" value="<?php echo $v['cantidad'] ?>">
<input name="id[]" type="hidden" id="id" value="<?php echo $v['id'] ?>">
<input name="cantidad[]" type="hidden" id="cantidad" value="<?php echo $v['cantidad'] ?>">
</td>
y la recibo en el php agregacarrito2
$cantidad=$_POST["cantidad"];?????????
  #30 (permalink)  
Antiguo 14/11/2008, 18:15
Avatar de erlingfiallos  
Fecha de Ingreso: febrero-2005
Ubicación: Mexico ahora
Mensajes: 499
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Falla en arreglo array

pues esa es mas desicion tuya.. si utilizas una variable que pasaras por url y recibes el arreglo o la otra forma es que la guardes en una sesion.. es mas como te acomodes mejor..
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 15:56.