Buenos días,
Honestamente me siento un poco avergonzado por compartir esto, pero la verdad es que me siento un poco desesperado con el pequeño problemilla que tengo:
Estoy intentado mostrar la información de una tabla mediante un bucle en PHP. Suena bastante simple, he aquí una versión simplificada del código:
<?php
require("phpsqlinfo_dbinfo.php");
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM polygons";
$result = $conn->query($sql);
while($row[] = $result->fetch_assoc()) { }
$cuenta=mysqli_num_rows($result);
echo 'document.getElementById("demo").innerHTML ="Numero total de valores: " + ' . $cuenta . ' + "</br>";';
for ($i = 0; $i < $cuenta; $i++) {
$val[$i] = $row[$i]["name"];
echo 'document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + "</br>Valor " +'. $i .'+ ": " + '.$val[$i].'+ "</br>";';
}
?>
¿Cuál es el problema? El problema es que todos los valores extraídos desde la base de datos siempre aparecen como ENTEROS, y los datos son nombres, osease de tipo VARCHAR.
Cada vez que el bucle muestra la variable $val[$i], intenta convertir el nombre extraído de la base de datos a entero, por lo que da error y se rompe.
He intentado convertir las variables en string mediante (string) y otros métodos, pero ninguno parece funcionar.
Lo que me confunde es que si lo intento de la siguiente manera, mediante Javascript y un "echo", entonces sí que me lo muestra como String:
document.getElementById("demo").innerHTML='<?php echo $row[''+ 1 + '']["name"]; ?>';
Espero que no os importune este tema.