У меня есть запрос $sqlStr4
, который "выбирает" эти поля из базы данных MySQL:
loginid
username
created
Запрос $sqlStr4
ограничен 10 строками/результатами.
У меня также есть следующая переменная:
$u = $_SESSION['username'];
Я хотел бы присвоить другую переменную $topten
значение 1, если $u
равно любому из десяти username
полей, возвращаемых запросом $sqlStr4
, и значение 0, если это не так.
Как я могу это сделать?
Спасибо заранее,
Джон
Использование:
<?php
$u = $_SESSION['username'];
$topten = 0;
$result = mysql_query($sqlStr4);
while ($row = mysql_fetch_assoc($result)) {
if ($row['username'] == $u) {
$topten = 1;
break;
}
}
mysql_free_result($result);
?>
Можно попробовать что-то вроде этого...
while ($row = mysql_fetch_assoc($sqlStr4))
{
$topten = ($u == $row['username']) ? 1 : 0;
// the rest of your processing code here
}
Там могут быть лучшие решения для вашей ситуации. Было бы проще, если бы вы разместили код!
Если вы вставили запрос, мы могли бы предоставить фиксированную версию. Вы можете сделать это несколькими способами, но нужно добавить столбец в свой запрос и использовать оператор CASE.
select *, CASE WHEN username = '$u' THEN 1 ELSE 0 END as topten
from ...
Это просто пример. Очевидно, чтобы предотвратить SQL-инъекцию, вы должны ее параметризовать или использовать mysql_real_escape_string() или хранимую процедуру и т.д. и т.д....
EDIT: Я вижу, что вы хотите, чтобы переменная находилась в PHP... поэтому вам нужно было бы пройти через массив, чтобы проверить каждый. В чем проблема, с которой вы сталкиваетесь?...
$topten = 0;
if ($result) {
while ($record = mysql_fetch_array($result)) {
if ($record['username'] == $u) $topten = 1;
}
}
$topten
на ноль, если последующие записи не совпадают.mysql_num_rows()
в запросе. Я сделал предположение, что он хочет пройтись по циклам и что-то сделать со строками, поэтому он хотел бы, чтобы значение каждый раз сбрасывалось. Простойif ($topten) break;
мог быть добавлен, если бы эта проверка была всем, что хотел сделать ОП, но в этом случае я бы порекомендовал ему пересмотреть свой запрос!