Здравейте, имам следния код. В базата данни имам различни потребители(различни имейли и пароли). В случая проверявам първо дали изобщо има подадено нещо в полетата ако не връщам грешка, ако да продължавам. Селектирам базата и таблицата и искам да завъртя цикъл ако подаденото от пост и реда от базата не съвпадат да върна грешка. И тук идва проблема. Винаги ми селектира първия ред от базата и спира до там. Например имам имейл1 и парола1, имейл2 и парола2. Ако сложа във формата имейл1 и парола1(демек първия ред от базата) проверките си минават. Ако сложа имейл2 и парола2 ми вади грешката че не съществуват а ги има в базата(не завърта цикъла). Не мога да кажа в заявката WHERE imeil = $dataEmail защото ако подам несъществуващ в базата имейл заявката не може да се изпълни и не се стига дори до проверките. Сигурно е нещо просто ама не мога да включа къде греша.
Код:
//$dataEmail, $dataPass са ми пост параметрите
public function start($dataEmail, $dataPass) {
if (empty($dataEmail) || empty($dataPass)) {
return 'empty_fields';
}
$this->prepare('USE db1')->execute();
$sql = $this->prepare('SELECT * FROM login')->execute()->fetchAllAssoc();
foreach ($sql as $row) {
if ($dataEmail != $row['email']) {
return 'wrong_email';
} elseif ($dataPass != $row['pass']) {
return 'wrong_pass';
} else {
return 'ok';
}
}
}