Solo la primera palabra que completa el campo de valor en un botón de envío

Estoy haciendo una consulta y rellenando botones con los resultados:

$query="select name from members where active=1 order by name"; 

Si hago un simple:

 while($row = $rs->fetch_assoc()) { echo $row['name']."
; }

Obtengo una lista:

Mary123

JOE

Robert Tables

Sin embargo si yo:

  $column = 0; while($row = $rs->fetch_assoc()) { if ($column == 0) { echo ""; } echo ""; $column++; if ($column >= 5) {echo ""; $row++; $column=0; } } echo "
";

Mis botones se ven como

Mary123

JOE

Robert

Como puede ver, el nombre Tables se descarta del nombre y solo se muestra el valor de Robert .

Inicialmente pensé que el nombre no se mostraba debido al tamaño del texto en comparación con el tamaño del botón, pero he demostrado que no es el caso al eliminar el CSS y verificar el valor de $_POST en individuals.php . Además, si cambio el nombre en la base de datos a Robert_Tables , funciona bien.

¿Hay algo que estoy haciendo mal? ¿Qué debo cambiar para obtener el valor para mostrar ambas palabras y el espacio?

Su problema se basa en el hecho de que olvidó citar el parámetro de value de la entrada con comillas '' . Mira aquí tienes:

  value=".$row['name']."> 

cuando debería ser en cambio:

  value='".$row['name']."'> 

Y eso está rompiendo el marcado html generado, vea un fragmento simple a continuación sobre cómo se maneja el resultado cuando omite las comillas: