Ваш код должен быть чем-то вроде этого
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM Users WHERE UserName LIKE '$username'";
echo $query;
$result = mysql_query($query);
if($result === FALSE) {
die(mysql_error("error message for the user"));
}
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
. После этого вы получите запрос, напечатанный на экране. Попробуйте выполнить этот запрос на своем сервере и посмотрите, дает ли он желаемые результаты. В большинстве случаев ошибка содержится в запросе. Остальная часть кода верна.
Это не может работать, потому что ppCombined
представляет собой набор объектов в памяти, и вы не можете присоединиться к набору данных в базе данных с другим набором данных, который находится в памяти. Вместо этого вы можете попытаться извлечь отфильтрованные элементы personProtocol
коллекции ppCombined
в память после , вы получили другие свойства из базы данных:
var persons = db.Favorites
.Where(f => f.userId == userId)
.Join(db.Person, f => f.personId, p => p.personId, (f, p) =>
new // anonymous object
{
personId = p.personId,
addressId = p.addressId,
favoriteId = f.favoriteId,
})
.AsEnumerable() // database query ends here, the rest is a query in memory
.Select(x =>
new PersonDTO
{
personId = x.personId,
addressId = x.addressId,
favoriteId = x.favoriteId,
personProtocol = ppCombined
.Where(p => p.personId == x.personId)
.Select(p => new PersonProtocol
{
personProtocolId = p.personProtocolId,
activateDt = p.activateDt,
personId = p.personId
})
.ToList()
});
В моем случае я смог решить проблему, выполнив следующие действия:
Я изменил свой код на это:
var r2 = db.Instances.Where(x => x.Player1 == inputViewModel.InstanceList.FirstOrDefault().Player2 && x.Player2 == inputViewModel.InstanceList.FirstOrDefault().Player1).ToList();
К этому:
var p1 = inputViewModel.InstanceList.FirstOrDefault().Player1;
var p2 = inputViewModel.InstanceList.FirstOrDefault().Player2;
var r1 = db.Instances.Where(x => x.Player1 == p1 && x.Player2 == p2).ToList();
Не знаю, ищет ли кто-нибудь это. У меня такая же проблема. Выбор в запросе, а затем выполнение того, где (или объединение) и использование переменной выбора разрешили проблему для меня. (проблема была в коллекции «Reintegraties» для меня)
query.Select(zv => new
{
zv,
rId = zv.this.Reintegraties.FirstOrDefault().Id
})
.Where(x => !db.Taken.Any(t => t.HoortBijEntiteitId == x.rId
&& t.HoortBijEntiteitType == EntiteitType.Reintegratie
&& t.Type == TaakType))
.Select(x => x.zv);
надеюсь, что это кому-то поможет.