Я пытаюсь написать свой первый PHP script с mySQL, и мне отчаянно нужна помощь. Я уверен, что это относительно просто, но если у меня есть одно поле в моей таблице (например, имя пользователя), и я хочу получить другое поле (например, имя), которое находится в той же строке, что и указанное имя пользователя, как это сделать?
Опять же, я уверен, что это легко, но я потерян, поэтому я очень признателен за любую помощь. Спасибо!
halfdan отвечает на несколько видов работ, но он извлекает все строки и отображает их. То, что вы хотите, - это предложение WHERE
, которое позволяет фильтровать содержимое таблицы, чтобы запрос возвращал только нужные строки:
SELECT username, name
FROM sometable
WHERE (username = 'johndoe');
Это вернет только те строки, где поле имени пользователя равно "johndoe". Концептуально это эквивалентно:
$results = mysql_query("SELECT username, name FROM table");
while($row = mysql_fetch_assoc($results)) {
if ($row['username'] == 'johndoe') {
// do something, this is a row you want
} else {
// not a row you want. ignore it, or deal with it some other way
}
}
Основное отличие состоит в том, что для больших наборов данных в базе данных фильтрация на стороне клиента, как это, является дорогостоящей, так как все содержимое таблицы должно быть перенесено. Использование предложения WHERE
для ограничения того, что вы хотите, гораздо более эффективно в долгосрочной перспективе.
$sql = "SELECT username, name FROM table";
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)) {
echo "This {$row['username']} has the name {$row['name']}\n";
}