La Base de Datos no me vuelca los "values"

  • Autor Autor elendil73
  • Fecha de inicio Fecha de inicio
E

elendil73

Curioso
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola chic@s:

Hasta el día de ayer tenia instalado el AppServ 8.5.0 con PHP 5 y mi conexión con la Base de Datos me funcionaba perfectamente. Me di cuenta que con el PHP 5 me quedaba obsoleto en muchas expresiones y como mi proyecto lo subiré al hosting de WordPress.com en un futuro, decidí actualizar mi servidor al AppServ 9.3.0 con el PHP 7.3.10

Al descargar el AppServ 9.3.0 lo instalé sobre el AppServ 8.5.0 y vi que me dio algunos avisos de archivos que no podía sobreescribir, pero no le di importancia porque el nuevo servidor se instalo y el index.php parecia correcto y mi localhost seguía intacto. Pero, probando mi código me di cuenta de que nos me mostraba las "Query", y era extraño porque hasta el momento, me funcionaba.

Hoy he decidido desinstalar el AppServ 8.5.0 e instalar de nuevo el AppServ 9.3.0 (y no me ha mostrado ningún error en la instalación). He creado la base de datos de nuevo, incluso con otro nombre, he creado de nuevo mi tabla de usuarios y he probado mi Conect_BD.php y me conecta con el administrador MySQL pero no con la Base de Datos ... y no se que puede estar pasando, porque el código funciona!! :-(

conexion_BD.webp

He conseguido avanzar algo con este nuevo código conect_db.php:

<?php

function connectDB(){

$server = "localhost";
$user = "root";
$pass = "wallace1312";
$bd = "tallerphp";


$con = mysqli_connect($server, $user, $pass, $bd)
or die("Ha sucedido un error inexperado en la conexion de la base de datos");

return $con;
}

Abro mi formulario de consulta:

<html>
<head>
<title>Ejemplo Consulta</title>
<head><link rel="stylesheet" type="text/css" href="Estilos.css"></head>
</head>
<body>
<form action="busca.php" method="post" enctype="multipart/form-data">
Usuario:
<input type="text" name="usuario" size="20" maxlength="30" autocomplete="off" required value="">
<input type="submit" name="accion" value="Buscar">
</form>

</body>
</html>

Y este es el busca.php

<html>
<head>
<title>Ejemplo PHP para Buscar Registro</title>
<head><link rel="stylesheet" type="text/css" href="Estilos.css"></head>
</head>
<body>
<?php
include ("conect_db.php");
if (!empty($_POST["usuario"])) {
$usuario = $_POST["usuario"];
$Sql = "SELECT * FROM usuarios WHERE usuario LIKE '%$usuario%'";
//echo $Sql;
$result = mysqli_query ($Sql,$con);
} else if ($usuario != $_POST["usuario"]) {
echo "No se encuentra registro con este nombre";
exit ();
}

?>
<table border=1 cellspacing=1 cellpadding=1>
<tr>
<td>&nbsp;Usuario:&nbsp;</td>
<td>&nbsp;Email:&nbsp;</td>
<td>&nbsp;Clave:&nbsp;</td>
</tr>
<form name="modificar" method="post" action="modifica.php" enctype="multipart/form-data">

<?php
while ($row = mysqli_fetch_array($result)) {
printf ("<tr><td>&nbsp;<input type='text' name='usuario' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='email' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='clave' size='12' maxlength='12' value='%s'>&nbsp;</td></tr>",
$row["usuario"],$row["email"],$row["clave"]);
}
mysqli_free_result($result);
?>
<tr><td><input type='submit' value='Grabar'></td></tr>
</form>

</body>
</html>

Pero sólo me muestra la tabla vacia. No me recupera los valores de la array de mysqli_fetch (aunque sigo con la duda de si realmente estoy conectando o no con la Base de datos ?¿?
 
@elendil73 No veo donde llamas a $con = connectDB();
 
@YeltsinReyes el código de la primera imagen era el que tenia inicialmente, pero después adapté otro. El que sigue mi post el conect_db.php aquí es donde esta: $con = mysqli_connect($server, $user, $pass, $bd)
 
@YeltsinReyes el código de la primera imagen era el que tenia inicialmente, pero después adapté otro. El que sigue mi post el conect_db.php aquí es donde esta: $con = mysqli_connect($server, $user, $pass, $bd)
Pero tienes la conexion en una funcion, tienes que llamar a esta funcion, asi!

PHP:
<?php
include ("conect_db.php");
if (!empty($_POST["usuario"])) {
 
     /* LLamar la conexión */
    $con = connectDB();

    $usuario = $_POST["usuario"];
    $Sql = "SELECT * FROM usuarios WHERE usuario LIKE '%$usuario%'";

    $result = mysqli_query ($Sql, $con);
   
} else if ($usuario != $_POST["usuario"]) {
   
    echo "No se encuentra registro con este nombre";
    exit ();
   
}

?>
 
<body> <?php include ("conect_db.php"); $con = conectDB(); if (!empty($_POST["usuario"])) { $usuario = $_POST["usuario"]; $Sql = "SELECT * FROM usuarios WHERE usuario LIKE '%$usuario%'"; //echo $Sql; $result = mysqli_query ($Sql,$con); } else if ($usuario != $_POST["usuario"]) { echo "No se encuentra registro con este nombre"; exit (); } ?> <table border=1 cellspacing=1 cellpadding=1> <tr> <td>&nbsp;Usuario:&nbsp;</td> <td>&nbsp;Email:&nbsp;</td> <td>&nbsp;Clave:&nbsp;</td> </tr> <form name="modificar" method="post" action="modifica.php" enctype="multipart/form-data"> <?php while ($row = mysqli_fetch_array($result)) { printf ("<tr><td>&nbsp;<input type='text' name='usuario' size='20' maxlength='30' value='%s'>&nbsp;</td> <td>&nbsp;<input type='text' name='email' size='20' maxlength='30' value='%s'>&nbsp;</td> <td>&nbsp;<input type='text' name='clave' size='12' maxlength='12' value='%s'>&nbsp;</td></tr>", $row["usuario"],$row["email"],$row["clave"]); } mysqli_free_result($result); ?> <tr><td><input type='submit' value='Grabar'></td></tr> </form>

Ah ok, ya entiendo. Pensaba que con el include ya valia. De todas maneras incluso asi, no me funciona. Puede que tenga algo que ver con el cotejamiento de datos en la DB ??
 
La Base de Datos existe y puedo realizar consultas de SQL sin problemas. No entiendo porque desde código PHP no me la detecta, cuando antes con PHP 5 si me funcionaba. He repasado el php.ini y la extensión my_sqli esta habilitada.

mysql_admin.webp
 
Conseguí conectar con la Base de Datos:

select.webp

Pero no me muestra el registro desde mysqli_fetch_array();

<?php
while ($row = mysqli_fetch_array($result)) {
printf ("<tr><td>&nbsp;<input type='text' name='usuario' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='email' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='clave' size='12' maxlength='12' value='%s'>&nbsp;</td></tr>",
$row["usuario"],$row["email"],$row["clave"]);
}
mysqli_free_result($result);
?>
 
Buenos dias:

Al final he conseguido encontrar el error, pero no la solución. La variable $result no me devuelve los valores:

error_result.webp

if (!empty($result)) {

while ($row = mysqli_fetch_array($result)) {

printf ("<tr><td>&nbsp;<input type='text' name='usuario' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='email' size='20' maxlength='30' value='%s'>&nbsp;</td>
<td>&nbsp;<input type='text' name='clave' size='12' maxlength='12' value='%s'>&nbsp;</td></tr>",
$row["usuario"],$row["email"],$row["clave"]);

}
mysqli_free_result($result);
} else {
echo "Se ha producido un error en el volcado de datos";
}

Desde el administrador de MySQL he podido insertar un registro con SQL, así que debe ser un problema del código, o más bién de la función mysqli_fetch_array ... pero es que no le veo error de sintaxis, que puede estar pasando ??
 
Al final ... lo conseguí: Muchisimas gracias.

select_ok_2.webp
 
Atrás
Arriba