Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Miseryk en 2 Febrero 2017, 16:47 PM

Título: Parse Error Subvariable como index
Publicado por: Miseryk en 2 Febrero 2017, 16:47 PM
Código (php) [Seleccionar]

<?php
$pdo Database::connect();

$pdo->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

$sql "SELECT * FROM Users where ID = ?";
$q $pdo->prepare($sql);
$q->execute(array($id));

$data $q->fetch(PDO::FETCH_ASSOC);

Database::disconnect();

$Columnas = array
(
array("User"),
array("Password"),
);

foreach ($Columnas as $value)
{
echo "<div class='control-group'>";
echo " <label class='control-label'>$value[0]</label>";
echo " <div class='controls'>";
echo " <label class='checkbox'>";
echo " <?php echo $data['" $value[0] . "'];?>
"; ---------->ACA NO FUNCIONA
echo " </label>";
echo " </div>";
echo "</div>";
}
?>


Mi lógica es hacer que que tome las columnas para hacer un html y que a su vez tome el valor correspondiente desde
$data, pero me muestra un mensaje de error:

"Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)"

Alguno tiene alguna idea de como hacer funcionar éso? en realidad no son 2 campos boludos, son como 10 y con esa lógica no tengo que andar metiendo mucho html.

También probé así:

Código (php) [Seleccionar]

echo " <label class='checkbox'>";
echo " $data['$value[0]']";
echo " </label>";
Título: Re: Parse Error Subvariable como index
Publicado por: xiruko en 2 Febrero 2017, 16:59 PM
Hola,

Cuando quieres imprimir un array, usa comillas dobles " para la cadena y usa {} para englobar la variable que es un array.

Código (php) [Seleccionar]
echo "<label class='checkbox'>{$data[$value[0]]}</label>";

Saludos!
Título: Re: Parse Error Subvariable como index
Publicado por: Miseryk en 2 Febrero 2017, 17:07 PM
Cita de: xiruko en  2 Febrero 2017, 16:59 PM
Hola,

Cuando quieres imprimir un array, usa comillas dobles " para la cadena y usa {} para englobar la variable que es un array.

Código (php) [Seleccionar]
echo "<label class='checkbox'>{$data[$value[0]]}</label>";

Saludos!

JOJO esa solución es mágica, funciona perfectamente, inclusive alterando el orden los campos!

Muchísimas gracias!! voy a buscar información sobre éso.