2015-11-01 3 views
0

Я постараюсь, чтобы это было коротко, так как я, вероятно, пропустил здесь что-то очень простое.PHP - Как мне получить доступ к значениям mysql_fetch_assoc с переменной?

По сути, у меня есть для цикла в C#, который работает 25 экземпляров PHP кода, каждый раз переходя в другую строку как значение «RoomID»:

<?php 
    $servername = "server"; 
    $username = $_REQUEST["username"]; 
    $roomID = $_REQUEST["roomID"]; 
    $dbName = "dbName"; 
    $user = "user"; 
    $pass = "pass"; 

    $conn = mysql_connect($servername, $user, $pass); 
    mysql_select_db($dbName); 

    $SQL = "SELECT '" . $roomID . "' FROM dbName WHERE Username = '" . $username ."'"; 
    $Result = mysql_query($SQL) or die("DB Error"); 
    $data = mysql_fetch_assoc($Result) or die("DB Error"); 
    echo $data[$roomID]; 

    mysql_close(); 
?> 

В конце концов, я хочу чтобы получить значение от $ данных [$ RoomID] (для более статического примера: данные $ [ «пароль»]), но проблема ... это то, что она возвращает:

Room1 
Room2 
Room3 
Room4 
Room5 
Room5 

И так далее , когда он должен (на основе значений по умолчанию базы данных) вернуть:

-1 
-1 
-1 
-1 
-1 
-1 

Я полностью в тупике о том, как это решить. Я попытался переключиться на mysql_fetch_array и использовать индекс 0, но также возвращает имя переменной, а не значение. Я также совершенно новичок как в PHP, так и в MySQL, поэтому я не слишком осведомлен о вещах. Насколько я знаю, я мог бы пропустить что-то простое.

+1

Если вы передаете 'roomId' из запроса в качестве фактического идентификатора, тогда ваш SQL-запрос будет« выбирать 4 из таблицы, где username = ... ». Это ваш желаемый результат? В противном случае измените его на 'select из таблицы, где username =" ... "и roomid =" ". Кроме того, этот код подвержен внедрению sql. – Pavlin

ответ

0

Я думаю, что здесь находится ваша проблема.

$SQL = "SELECT '" . $roomID . "' FROM dbName WHERE Username = '" . $username ."'"; 

Вы используете одиночные кавычки ' определить столбец, вы должны использовать ` один рядом с тильдой. например,

$SQL = "SELECT `" . $roomID . "` FROM dbName WHERE Username = '" . $username ."'"; 
+0

Спасибо! Это было именно так. –

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