Estoy tratando de crear botones de opción a partir de una cadena separada por comas que se almacena en la base de datos MYSQL.

Sin embargo, solo obtengo el último valor de la cadena separada por comas, por lo que solo crea 1 botón de opción cuando, de hecho, debería crear varios, ya que hay cadenas como esta:

1,2,3,4

Mi consulta PHP mysql se ve así:

list = "";
$sql2 ="SELECT * FROM table";
$query2 = mysqli_query($db_conx, $sql2);
$productCount = mysqli_num_rows($query2); // count the output amount
if ($productCount > 0) {
    while($row = mysqli_fetch_array($query2, MYSQLI_ASSOC)){ 
             $column = $row["column"];


             $drawes ="";
             $mark=explode(",", $Draw);
             foreach($mark as $out) {
             $drawes = '<label for="one">
             <input type="radio" id="one" name="duration" value="1" />
             '.$out.'
             </label>';
   }


list .= '<div style="width:100%; height:auto; border-bottom:solid 1px #CCC; padding-bottom:10px;padding-top:10px;">
'.$drawes.'
</div>';

}
}

Y yo echo $list; en mi página, pero solo hay 1 botón de opción en mi página con el último valor de la cadena así:

<label for="one">
<input type="radio" id="one" name="duration" value="1" />
4
</label>

¿Podría alguien aconsejarme sobre este tema?

Gracias de antemano.

0
rooz 26 ene. 2016 a las 20:22

2 respuestas

La mejor respuesta

Estás haciendo una asignación a $drawes en el ciclo. El contenido actual de la variable se sobrescribe.

Parece que desea concatenar al valor existente.

El operador de asignación de concatenación de PHP es " .= ".

$a = 'this';
$a .= 'and something else';
echo $a;
3
spencer7593 26 ene. 2016 a las 17:31

Hay demasiados errores en su código. He reescrito las partes que pude probar. el bit sql no se prueba y supongo que está extrayendo los datos correctos. compare mi código con el suyo y verá que se pasaron algunas variables incorrectas y también falta la concatenación.

$list = "";
$sql2 ="SELECT * FROM table";
$query2 = mysqli_query($db_conx, $sql2);
$productCount = mysqli_num_rows($query2); // count the output amount

if ($productCount > 0)
{
    while($row = mysqli_fetch_array($query2, MYSQLI_ASSOC))
    { 
        $column = $row["column"];

        $drawes = "";
        $mark = explode(",", $column);
        foreach($mark as $out)
        {
            $drawes .= '<label for="one">'.$out.'</label>
            <input type="radio" id="one" name="duration" value="'.$out.'" /><br>';
        }

        $list .= '<div style="width:100%; height:auto; border-bottom:solid 1px #CCC; padding-bottom:10px;padding-top:10px;">'.$drawes.'</div>';
    }
}
1
Daniel PurPur 27 ene. 2016 a las 11:52