Как вывести одну строчку из mysql?

Подскажите пожалуйста, как вывести одну строчку из базы mysql?
Таблица имеет вид:
id
name
email

Номер id будет переменной и будет браться из get-запроса (это уже сделано).
Нужно, что бы исходя из переменной $userid, в которой будет лежать значение id выводились остальные поля из таблицы, например, в базе под id=5 находится Иванов Вася, у которого почта ivanov@gmail.com, и при $userid=5 должен произойти вывод в переменные остальных данных этой строчки, например, $user[name]="Иванов Вася", а переменная $user[email]="ivanov@gmail.com", что бы потом эти переменные подставить в html структуру.
  • Вопрос задан
  • 18473 просмотра
Решения вопроса 1
Zoxon
@Zoxon
Веб-разработчик
1. Подключение
mysql_connect(localhost,$username,$password);

2. Запрос
$query="SELECT * FROM user WHERE id = $userid";
$result=mysql_query($query);

3. Раскладываем по переменным
Если несколько строк, то либо в цикле раскидываем по переменным через mysql_result
Если одна строка то используем mysql_numrows

www.php.net/manual/ru/mysql.examples-basic.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@lnked
Все верно говорят, + ко всему учитывайте добавляйте к запросу LIMIT 1 для оптимизации
Ответ написан
svd71
@svd71
если id - это поле первичного ключа и оно единственно в ключе (то есть гарантированно ссылается на одну запись, то ничего делать не нужно.
$sth = $dbh->prepare("SELECT * FROM user WHERE id=?id");
$sth->execute(array('id' => $userid));
$arResult = $sth->fetch(PDO::FETCH_ASSOC);
print_r($arResult);

в массиве $arResult вернутся еще один встроенный массив, в котором будут значения ваших полей.
$arResult[0]['id'] => 5
$arResult[0]['name'] => 'Иванов Вася'
$arResult[0]['email'] => ivanov@gmail.com''


Ваш пример с $userid=1 видимо от непонимания принципа работы: как вы будете эти остальные данные соединять $userid=5 ?
Ответ написан
0neS
@0neS
$user = mysql_query('SELECT * FROM users WHERE id=' . $user_id);
while ($row = mysql_fetch_assoc($user)) {
    echo $user['name'];
    echo $user['email'];
}

Но использовать mysql_ строго не рекомендуется из-за соображений безопасности, поэтому можно использовать, к примеру, PDO:
try {
    $DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
}  catch(PDOException $e) {
    echo "Нет соединения с базой данных";
}

$user = $DBH->prepare("SELECT name, email FROM users WHERE id = :user_id");
$user->execute(array('user_id' => $user_id))->fetch(PDO::FETCH_OB);

echo $user->name . "\n";
echo $user->email;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы