0

Друзья, помогите разобраться.
Имеется БД с названием NAME. В ней 2 столбца : name1 и name2.
Мне нужно вывести значение столбца name2, при условии что в этой строке name1 = $SuperName=$_REQUEST['name'].
$_REQUEST['name'] передается верно (пытаюсь выделить строку и поместить её в $data).

Далее мой код:

$Подключение к БД
$SuperName=$_REQUEST['name'];
$sql= mysql_query("SELECT * FROM NAME WHERE name1='$SuperName' ",$db);
if($sql)
{

    while($data = mysql_fetch_array($sql)) {


        echo $data['name2'];

    }

}
else
{
    print mysql_error();
}

На выходе пишет ошибку, что Name2 не определен. Возможно этот вопрос нереально простой, но я не могу понять что не так. Честно читал похожие вопросы. Тупой, так и не понял что не так :(

smellyshovel
  • 5,224
  • var_dump($data);die; в нутри цикла while что пишет? – Naumov Jun 22 '16 at 10:06
  • 2
    заменить mysql_fetch_array на mysql_fetch_assoc – EatMyDust Jun 22 '16 at 10:07
  • Спасибо, EatMyDust! Это решило проблему. Если кто в друг столкнется с такой проблемой, то нужно выводить не по имени столбца, а по номеру массива, например echo $data[1]; – Al3x4kov Jun 22 '16 at 10:15
  • @Al3x4kov, прочитайте вот этот вопрос/ответ https://ru.stackoverflow.com/questions/393450/%D0%93%D1%80%D0%B0%D0%BC%D0%BE%D1%82%D0%BD%D0%B0%D1%8F-%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0-%D0%BE%D1%82-sql-injection и вот этот https://ru.stackoverflow.com/questions/448720/%D0%9A%D0%B0%D0%BA%D0%BE%D0%B9-extention-%D0%B2%D1%8B%D0%B1%D1%80%D0%B0%D1%82%D1%8C-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-mysql-%D0%B2-php – Visman Jun 22 '16 at 10:24

1 Answers1

2

Замените mysql_fetch_array на mysql_fetch_assoc так как в первом случае вы получите список (массив с индексами 0,1,2,3), а во втором случае ассоциативный массив (массив с ключами name1, name2)

EatMyDust
  • 381
  • 1
  • 7