Frage

Ich versuche derzeit Daten aus einer Tabelle zu extrahieren, und bin mit dieser:

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

Allerdings ist es funktioniert nicht als Echo $online geben "Array".

Hier ist ein var_dump von $ online

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) } 
War es hilfreich?

Lösung

Sie mögen:

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

mysqli_fetch_field() wird für das Abrufen von Spaltendefinitionen , keine Daten, und es ist funktionierend gut: geben Sie eine Spaltendefinition Objekt zurück

.

mysqli_fetch_array() , mysqli_fetch_assoc() und mysqli_fetch_object() sind für den Datenabruf.

Andere Tipps

eine der folgenden Funktionen Versuchen:

  • mysqli_fetch_array - Liefert einen Datensatz als assoziatives, ein numerisches Array oder beide

    $row = mysqli_fetch_array($result);
    echo $row[0]; // or
    echo $row['online'];
    
  • mysqli_fetch_assoc - Liefert einen Datensatz als assoziatives Array

    $row = mysqli_fetch_assoc($result);
    echo $row['online'];
    
  • mysqli_fetch_object - Liefert die aktuelle Zeile eines Ergebnisses als Objekt gesetzt

    $row = mysqli_fetch_object($result);
    echo $row->online;
    
  • mysqli_fetch_row - ein Datensatz als indiziertes Array

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

Mit $result Wesen:

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

Die Funktion, die Sie suchen ist nicht mysqli_fetch_field(). Es extrahiert die Informationen über das Feld , aber nicht die Felddaten selbst .

Versuchen Sie stattdessen:

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

Wenn ich nicht irre, gibt es keine Möglichkeit direkt nur eine Spalte Daten zu holen. Sie müssen die ganze Reihe holen, auch wenn es nur eine Spalte, und dann nehmen Sie den Wert manuell aus dem resultierenden Array.

edit: Chaos Antwort sieht ziemlich ähnlich wie das, was ich meinte

.

Es ist ein bisschen offtopic, aber ich empfehle Ihnen höhere Ebene Framework zu verwenden, um mit Datenbank arbeiten, wie http: / /adodb.sourceforge.net/ zum Beispiel

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top