Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2007, 03:19
alexoflexo
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 17 años
Puntos: 0
Problemas funcion eval()

Hola Amigos.

Les explico:

Estoy desarrolando un script que me almacene los resultados de una consulta en una matiz asociativa, pero la verdad es que no tengo experiencia con este tipo de matrices por eso creo que me estoy complicando un poco la vida.

Al principio mi codigo era este:

$sql="SELECT (stamper)AS medio,(uds)AS unidades,precio FROM stampers WHERE idproducto=$idproducto";
$stamper=mysql_query($sql);

while($fila=mysql_fetch_array($stamper))
{
$_SESSION['precio_stampers']=array($fila['medio']=>$fila['precio']);
}

Evidentemente esto lo unico que hace es guardarme el ultimo resultado de la consulta. Si supiera rellenar este array asociativo dinamicamente mis problemas se acabarian, pero despues de investigar y buscar y probar durante mucho rato sin resultados, se me ha ocurrido una idea, que es recurrir a la funcion eval(), por lo que mi codigo ha quedado en esto:

$sql="SELECT (stamper)AS medio,(uds)AS unidades,precio FROM stampers WHERE idproducto=$idproducto";
$stamper=mysql_query($sql);

$cont=0;
while($fila=mysql_fetch_array($stamper))
{

if($cont==0)
{
$cadena_matriz="'".$fila['medio']."'=>'".$fila['precio']."'";
}
else
{
$cadena_matriz=$cadena_matriz.",'".$fila['medio']."'=>'".$fila['precio']."'";
}

$cont++;
}

$_SESSION['precio_stampers']=array(eval($cadena_matriz));

El resultado de construir la cadena '$cadena_matriz' es el siguiente:

'CD-AUDIO'=>'300','HD-DVD'=>'400'

que es como se deberia crear la matriz asociativa, pero me lanza el siguiente error:

Parse error: syntax error, unexpected T_DOUBLE_ARROW in G:\www\PRESUPUESTOS\CREARPRESUPUESTO\NUEVOPRODUCTO \NUEVOPRODUCTO.php(83) : eval()'d code on line 1

Cualquier ayuda que puedan prestarme se lo agradecere.

Gracias