Nueva pregunta

Pregunta:

Fecha: 04-08-2016 07:07:22 (En Español)

Ayuda con conexión MySQLi y sistema de consulta[Resuelta]

buenos días muchachos, la verdad muchas gracias por sus aportes... soy nuevo en esto y me ha costado mucho, seguro dirán que esto es muy fácil, pero que les puedo decir, me ha costado, yo quiero hacer un sistema de busqueda donde los empleados de donde yo trabajo puedan entrar atreves de una contraseña y usuario a verificar sus vaucher de nomina y el estado de cuenta de la ayuda socio-económica, he tratado de seguir los aportes que ustedes mis queridos amigos me han dado pero sigo con problemas, se que son personas ocupadas y no pretendo fastidiarlos, pero si pueden ayudarme se los agradeceré... poco a poco me he ido enamorando de los códigos pero me cuesta mucho..... y de nuevo muchísimas gracias por sus aportes.

aquí agrego lo que he hecho según lo que me ha sugerido, a ver si me lo revisan y me dan sus opiniones.

<?php	
		$_SESSION['password'] = (isset($_POST['password']))?$_POST['password']:'';
  
      $conexion = mysqli_connect("consulta","root","") or 
            die("Problemas en la conexion");
            mysqli_select_db("localhost",$conexion) or
            die("Problemas en la selección de la base de datos");


           $resultado= mysqli_query("select idusuario, usuario, password
                                from  usuario where usuario=$_REQUEST[usuario]") or
            die("Problemas en el select:".mysqli_error());
            
           
           if ($row = mysqli_fetch_array($resultado)){ 
                        echo "<br>";
                                            echo "<table width= '500' border = '1' align='center' >";
                                                echo "<tr>";
                                                    echo"<th colspan= '4' scope= 'col'>Estos son tus datos</th>";
                                                echo "</tr>";
                                                echo "<tr>"; 
                                                    echo "<td>idusuario</td>";
                                                    echo "<td>usuario</td>";
                                                    echo "<td>password</td>"; 
                                                     
                                                echo "</tr>"; 
                        do { 
                            echo "<tr>";
                                            echo "<td>".$row['idusuario']."</td>";
                                            echo "<td>".$row['usuario']."</td>";
                                            echo "<td>".$row['password']."</td>";
                                            
                                            echo "</tr>"; 
                          } while ($row = mysqli_fetch_array($resultado)); 
                            echo "</table> \n"; 
} else { 
echo "<p class='titulo2' align='center'> El Número de usuario '$_REQUEST[usuario]' No existe en el sistema</p>"; 
echo "<p align='center'>Has Clic aqui para ir al <a href='index.php' > Al  INICIO  </a></p>";
exit();

} 


 

     
    {
           echo "<p class='titulo2'align='center'>Error, No a ingresado Ningun dato</p>";
           echo "<p align='center'>Has Clic aqui para ir al <a href='index.php' > Al  INICIO  </a></p>";
           exit();
      }
?>


y esta es mi conexión:

<?php
$enlace = mysqli_connect("127.0.0.1", "root", "", "consulta");

if (!$enlace) {
    echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
    echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
    echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
    exit;
}

echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;

mysqli_close($enlace);
?>


y este es el error que me da:


Warning: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: El nombre solicitado es v?lido pero no se encontraron datos del tipo solicitado. in C:\xampp\htdocs\consulta\index.php on line 4

Warning: mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: El nombre solicitado es v?lido pero no se encontraron datos del tipo solicitado. in C:\xampp\htdocs\consulta\index.php on line 4
Problemas en la conexion
Etiquetas: MySQL - PHP - PHP MySQLi - Pregunta Votos: 1 - Respuestas: 6 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 04-08-2016 17:14:27 Hola amigo,
    El primer error que veo, es que en el primer archivo es mysql y el segundo que es la conexión es mysqli, tienes que actualizar ese código.
    Saludos
    Equipo QueCódigo de CorpLan Web.
      Votos: 1 - Link respuesta
     
  • Fecha: 05-08-2016 06:57:02 Hola Ernesto, antes que nada bienvenido a la comunidad.

    Estuve viendo tu problema, no había contestado antes porque "no ví una pregunta clara/concreta", tienes que tener presente que esta comunidad no es una comunidad de "consultores gratis", sino de gente con muy buena onda que te puede ayudar, pero no puedes tirar tu código y pretender que alguien te lo resuelva, las cosas no funcionan así por estos lugares, y no porque yo lo diga, sino porque la experiencia a demostrado que quien hace una buena pregunta recibe una buena respuesta en el 99% de los casos..... dicho esto te invito a que te tomes 1 minuto para leer: ¿Cómo cargar correctamente una nueva pregunta? <-- es muy importante que uses las etiquetas BBCode para postear tu código, sino se hacen sabanas "ilegibles" (se requiere mucho scroll).

    Por otro lado, de nada valdrá que cargues una nueva pregunta con el mismo problema, lo correcto es que si tienes avances edites tu pregunta original y los agregues o cargues una nueva respuesta dentro de la misma con los avances (esta última opción es más optima porque el sistema de PHPCentral notificará a todos los que siguen la pregunta de que hay novedades).

    Espero que no te tomes a mal los parrafos anteriores, son para explicarte la dinámica de la comunidad y no para dar lecciones de comportamiento, ni mucho menos...

    Habiendo superado esta etapa, veamos tu pregunta/problema, tienes un error: "Notice: Undefined index: password in C:\xampp\htdocs\consulta\index.php on line 2", esto se debe a que no encuentra definido el indice 'password' en el array superglobal $_POST <-- o sea, no fue enviada una password en la petición POST que se hizo al script PHP.... esto lo puedes "salvar" preguntando previamente si el indice existe o no en el array $_POST y luego recuperando el dato (si el indice existe) o cargando un vacio (en el caso de que no exista), veamos lo dicho en código:

    Una forma larga de validar lo explicado:
    if(isset($_POST['password']){
        $_SESSION['password'] = $_POST['password'];
    }else{
        $_SESSION['password'] = '';
    }
    


    Una forma menos voluminosa de hacerlo es por medio del operador if ternario:
    $_SESSION['password'] = (isset($_POST['password']))?$_POST['password']:'';
    


    Ambos códigos son validos, yo siempre opto por la opción 2.

    Lamento no poder seguirme explayando más, tengo que seguir con unos trabajos pendientes, más tarde me estaré conectando para ver tu feedback y ver en que más te puedo orientar/ayudar.

    Ahora bien, si lo que necesitas es un consultor/programador que se encargue de tu problema al 100% también puedes contar conmigo y de inmediato, pero esa modalida "es de pago" (espero que comprendas que yo trabajo de esto), podrás encontar mis datos de contacto en http://www.mundialsys.com/#contacto (MundialSYS en mi empresa, por lo que si te comunicas a los emails/telefonos informados te estarás poniendo en contacto conmigo, ya sea que te atienda yo o alguien que te derive).

    Saludos y buen código!
      Votos: 1 - Link respuesta
     
  • Fecha: 05-08-2016 07:19:29 de verdad muchas gracias por tu aporte... de verdad soy nuevo en esto... tratare de mejorar para no tener problemas.... y de verdad muchisimas gracias.... valoro tus palabras.... muy buen aporte   Votos: 2 - Link respuesta
     
  • Fecha: 05-08-2016 10:46:45 Hola,
    Uno de los problemas principales que veo, es que estas usando MySql (Desavaluado), así que usa 100% MySqli.
    Otro problema que veo, es que usas variables de Sessión, las cuales no funcionaran si no defines que iniciaras funciones de sessión.

    Otro seria, que no necesitas dos veces conectar ala base de datos, con una vez definida en un archivo compartido es suficiente.

    Puedes ver este ejemplo por PDO.

    Saludos
    Equipo QueCódigo de CorpLan Web
      Votos: 1 - Link respuesta
     
  • Fecha: 05-08-2016 17:48:19 Hola Ernesto, como bien comenta Edinson (alias CorpLan/QueCódigo/etc, a ver si restableces tu nombre que ya no se ni con quien hablo jajaja) no debes utilizar las funciones que comienzan con la palabra "mysql_" (por ejemplo mysql_connect, mysql_select_db, mysql_query, etc), porque son funciones obsoletas (DEPRECATED), en su remplazo estan las funciones que comienzan con "mysqli_".

    Dicho esto, y en vista de que hay varios puntos a corregir en tu código, considero que lo primero sería lograr conectar correctamente con la base de datos (que no es poco).

    Para conectar a la base de datos MySQL deberás utilizar mysqli_connect, aquí el enlace a la documentación oficial: http://php.net/manual/es/function.mysqli-connect.php <-- por favor lee esta página, aunque no entiendas mucho algo quedará.

    Vamos a utlizar el ejemplo de la documentación, agregando las constantes que tu has definido (una muy buena práctica):


    <?php
    // datos para la coneccion a mysql
    define('DB_SERVER','localhost'); //nombre o ip del servidor, esta ok con localhost
    define('DB_NAME','consulta'); //nombre de la base de datos
    define('DB_USER','usuario'); //nombre de usuario de la base de datos
    define('DB_PASS','password'); //contraseña del usuario de la base de datos
    
    $enlace = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
    
    if (!$enlace) {
        echo "Error: No se pudo conectar a MySQL." . PHP_EOL;
        echo "errno de depuración: " . mysqli_connect_errno() . PHP_EOL;
        echo "error de depuración: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
    
    echo "Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial." . PHP_EOL;
    echo "Información del host: " . mysqli_get_host_info($enlace) . PHP_EOL;
    
    mysqli_close($enlace);
    ?>


    Básicamente lo que hace el script es intentar conectar con la base de datos, en el caso de no poder te mostrará el error/motivo en pantalla, de poder conectar recibiras el siguente mensaje:
    Éxito: Se realizó una conexión apropiada a MySQL! La base de datos mi_bd es genial.
    Información del host: .....


    Prueba el anterior código (obviamente editando las constantes de configuración DB_SERVER, DB_USER, DB_PASS, DB_NAME según corresponda) y nos cuentas como te fue.

    También necesitamos que comentes que es lo que quieres hacer (una breve explicación), por ejemplo: Quiero crear un sistema el cual haga tal o cual cosa, que tenga un campo de busqueda para ..... etc. etc. etc., un detalle básico pero preciso, no pensando en lo técnico, sino en lo funcional.

    Esperamos tu respuesta para seguir avanzando.

    Saludos y buen código!
      Votos: 2 - Link respuesta
     
  • Fecha: 07-08-2016 03:45:20 Buenos días, gente, otra "cosita" que veo es el uso de $_REQUEST y creo que es un grave error.

    Utilizar MySQLi, perfecto pero lo arruino con $_REQUEST ya que toma tanto $_POST como $_GET y por ahí es donde todo resulta no tan bueno

    Saludos

    DIEGO
      Votos: 3 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com