2013-04-29 4 views
0

Мне очень трудно получить значение из моей базы данных sql. Мой код ниже, и я пытаюсь отобразить $ balance, но когда я его повторяю, он просто показывает «Массив».Как получить значение из таблицы MySQL - PHP

Вот изображение моей таблицы базы данных: database table

<?php 
session_start(); 
echo "<!DOCTYPE html>\n<html><head><script src='OSC.js'></script>"; 
include 'functions.php'; 

$userstr = ' (Guest)'; 

if (isset($_SESSION['user'])) 
{ 
    $user  = $_SESSION['user']; 
    $loggedin = TRUE; 
    $userstr = " ($user)"; 
    $balancequery = mysql_query("SELECT balance FROM members WHERE user = '$user'"); 
    $balance = mysql_fetch_assoc($balancequery); 
} 
else $loggedin = FALSE; 

echo "<title>$appname$userstr</title><link rel='stylesheet' " . 
    "href='styles.css' type='text/css' />" . 
    "</head><body><div class='appname'>$appname$userstr</div>"; 

if ($loggedin) 
{ 
    echo "<br ><ul class='menu'>" . 
     "<li><a href='members.php?view=$user'>Home</a></li>" . 
     "<li><a href='members.php'>Members</a></li>" . 
     "<li><a href='stockdata.php'>Stocks</a></li>" . 
     "<li><a href='logout.php'>Log out</a></li></ul><br />"; 
} 
else 
{ 
    echo ("<br /><ul class='menu'>" . 
     "<li><a href='index.php'>Home</a></li>" . 
     "<li><a href='signup.php'>Sign up</a></li>" . 
     "<li><a href='login.php'>Log in</a></li></ul><br />" . 
     "<span class='info'>&#8658; You must be logged in to " . 
     "view this page.</span><br /><br />"); 
} 
?> 
+0

Что такое print_r ($ balance), отображающий вас? Кстати, mysql_query обесценивается. – RelevantUsername

+0

Это потому, что $ balance - это массив. попробуйте использовать print_r ($ balance) и посмотрите, что выйдет. и найдите массивы php, чтобы узнать, как эхо значения из массива. – jimmy

+0

@RelevantUsername, которое дало мне «Array ([balance] => 1000000)» – MalvEarp

ответ

1

Это потому, что вы пытаетесь повторить в associatove массив, которым не работает. Попробуйте напечатать в качестве значения путем индексации вашего массива

echo $balance['balance']; //this is just array_name['column_name'] 

Я хотел бы помнить, что mysql_ функции устарели, так что я бы посоветовал вам перейти на mysqli или PDO.

2

mysql_fetch_assoc возвращает ассоциативный массив ваших полей для этой строки. Повторяя поле внутри этой строки, вы должны дать ему правильный индекс, который будет имя поля:

echo $balance["balance"]; 

Также осуждается расширение MySQL PHP. Пожалуйста, ознакомьтесь с MySQLi или PDO_MySQL.

Смежные вопросы