La Base de Datos no me vuelca los "values"

elendil73 Seguir

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
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.jpg

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

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
@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

Lambda
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
Desde
16 Feb 2010
Mensajes
2.939
@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 ();
   
}

?>
 

elendil73

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
<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 ??
 

elendil73

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
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.jpg
 

elendil73

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
Conseguí conectar con la Base de Datos:

select.jpg

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);
?>
 

elendil73

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
Buenos dias:

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

error_result.jpg

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 ??
 

elendil73

Curioso
Verificación en dos pasos desactivada
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
5 Nov 2020
Mensajes
8
Al final ... lo conseguí: Muchisimas gracias.

select_ok_2.jpg
 

¡Regístrate y comienza a ganar!

Beneficios

  • Gana dinero por participar
  • Gana dinero por recomendarnos
  • Descubre ofertas de empleo diariamente
  • Negocios seguros
  • ¡Información premium y más!

Acceder

¿Ya tienes una cuenta? Accede aquí

Arriba