Obtener datos de la base de datos MySQL

Los datos se pueden obtener de tablas MySQL ejecutando la instrucción SQL SELECT a través de la función PHP mysql_query. Tiene varias opciones para obtener datos de MySQL.

La opción que se usa con más frecuencia es usar la función mysql_fetch_array(). Esta función devuelve una fila como una matriz asociativa, una matriz numérica o ambas. Esta función devuelve FALSE si no hay más filas.

A continuación se muestra un ejemplo simple para obtener registros de employee mesa.

Ejemplo

Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de empleados.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "EMP ID :{$row['emp_id']}  <br> ".
         "EMP NAME : {$row['emp_name']} <br> ".
         "EMP SALARY : {$row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Fetched data successfully\n";
   
   mysql_close($conn);
?>

El contenido de las filas se asigna a la variable $ fila y luego se imprimen los valores de la fila.

NOTE - Recuerde siempre poner corchetes cuando desee insertar un valor de matriz directamente en una cadena.

En el ejemplo anterior, la constante MYSQL_ASSOCse utiliza como segundo argumento para mysql_fetch_array (), de modo que devuelve la fila como una matriz asociativa. Con una matriz asociativa, puede acceder al campo usando su nombre en lugar de usar el índice.

PHP proporciona otra función llamada mysql_fetch_assoc() que también devuelve la fila como una matriz asociativa.

Ejemplo

Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de empleados usando la función mysql_fetch_assoc ().

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_assoc($retval)) {
      echo "EMP ID :{$row['emp_id']}  <br> ".
         "EMP NAME : {$row['emp_name']} <br> ".
         "EMP SALARY : {$row['emp_salary']} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Fetched data successfully\n";
   
   mysql_close($conn);
?>

También puedes usar la constante MYSQL_NUM, como segundo argumento de mysql_fetch_array (). Esto hará que la función devuelva una matriz con índice numérico.

Ejemplo

Pruebe el siguiente ejemplo para mostrar todos los registros de la tabla de empleados usando el argumento MYSQL_NUM.

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "EMP ID :{$row[0]}  <br> ".
         "EMP NAME : {$row[1]} <br> ".
         "EMP SALARY : {$row[2]} <br> ".
         "--------------------------------<br>";
   }
   
   echo "Fetched data successfully\n";
   
   mysql_close($conn);
?>

Los tres ejemplos anteriores producirán el mismo resultado.

Liberando memoria

Es una buena práctica liberar la memoria del cursor al final de cada instrucción SELECT. Esto se puede hacer usando la función PHPmysql_free_result(). A continuación se muestra el ejemplo para mostrar cómo se debe utilizar.

Ejemplo

Prueba el siguiente ejemplo

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);
   
   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }
   
   $sql = 'SELECT emp_id, emp_name, emp_salary FROM employee';
   mysql_select_db('test_db');
   $retval = mysql_query( $sql, $conn );
   
   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }
   
   while($row = mysql_fetch_array($retval, MYSQL_NUM)) {
      echo "EMP ID :{$row[0]}  <br> ".
         "EMP NAME : {$row[1]} <br> ".
         "EMP SALARY : {$row[2]} <br> ".
         "--------------------------------<br>";
   }
   
   mysql_free_result($retval);
   echo "Fetched data successfully\n";
   
   mysql_close($conn);
?>

Mientras busca datos, puede escribir SQL tan complejo como desee. El procedimiento seguirá siendo el mismo que se mencionó anteriormente.