Pregunta

Actualmente estoy tratando de extraer datos de una tabla, y estoy usando esto:

 $online = mysqli_fetch_field(mysqli_query($db, 
      "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'")); 

Sin embargo, no está funcionando como eco dar $online "Matriz".

Aquí hay una var_dump de $ en línea

object(stdClass)#3 (11) { 
               ["name"]=> string(6) "online" 
               ["orgname"]=> string(6) "online" 
               ["table"]=> string(10) "tbl_system" 
               ["orgtable"]=> string(10) "tbl_system" 
               ["def"]=> string(0) "" 
               ["max_length"]=> int(1) 
               ["length"]=> int(11) 
               ["charsetnr"]=> int(63) 
               ["flags"]=> int(36865) 
               ["type"]=> int(3) 
               ["decimals"]=> int(0) } 
¿Fue útil?

Solución

¿Quieres:

$query = mysqli_query($db, "SELECT online FROM tbl_system WHERE property = 'extranet'");
$row = mysqli_fetch_array($query);
$online = $row[0];

mysqli_fetch_field() es para recuperar definiciones de columna , no datos, y es trabajando perfectamente bien: le da la espalda un objeto de definición de columna

.

mysqli_fetch_array() , mysqli_fetch_assoc() , y mysqli_fetch_object() son para la recuperación de datos.

Otros consejos

Pruebe una de las siguientes funciones:

  • mysqli_fetch_array - Obtiene una fila como una asociativa, una matriz numérica, o ambos

    $row = mysqli_fetch_array($result);
    echo $row[0]; // or
    echo $row['online'];
    
  • mysqli_fetch_assoc - Obtiene una fila de resultado como una matriz asociativa

    $row = mysqli_fetch_assoc($result);
    echo $row['online'];
    
  • mysqli_fetch_object - Devuelve la fila actual del resultado en forma de un objeto

    $row = mysqli_fetch_object($result);
    echo $row->online;
    
  • mysqli_fetch_row - Obtener una fila de resultado como una matriz enumerada

    $row = mysqli_fetch_row($result);
    echo $row[0];
    

Con $result ser:

$result = mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'");

La función que está buscando no está mysqli_fetch_field(). Se extrae la información de sobre el campo , pero no el de datos de campo en sí .

Tal vez puedas probar:

$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT `online` FROM `tbl_system` WHERE `property` = 'extranet'"));
echo $row['online'];

Si no me equivoco, no hay manera para traer solo un dato de la columna directamente. Necesitará a buscar toda la fila, a pesar de que es sólo una columna, y luego tomar manualmente el valor de la matriz resultante.

Edit: La respuesta de caos ve muy parecido a lo que me refería

.

Es un poco offtopic, pero recomiendo que utilice más alto nivel de marco para trabajar con la base de datos, como http: / /adodb.sourceforge.net/ por ejemplo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top