sandersik
@sandersik
Занимаюсь программированием 2-3 года

Как использовать find RedBean?

Нужно найти строку, где server = post запросу option, а nick = post запросу input
Прикладываю код RedBean
if(isset($_POST['submit'])) {
					$name = $_POST['nicks'];
					$server = $_POST['servers'];
					$infor = R::find('info', 'server = ? AND name = ?', [$server, $name]);
                                        $info = R::load('info', $infor->id);

<select name='servers'>
	                        	<option value="1">1</option>
	                        	<option value="2">2</option>
                        	</select>
				<input class="input" name="nicks" type="text">
				<input type="submit" name="submit" value="Поиск">
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@rapidum_alder
Мне кажется тут лишние действия.
$infor = R::find('info', 'server = ? AND name = ?', [$server, $name]);

Этим ты уже находишь нужные строки,
программа думает что ты нашел группу строк, поэтому выражение
$infor->id выдаст ошибку.

Используй $infor = R::getAll('SELECT `id` FROM `info` WHERE `server` = ? AND `name` = ?' > ?', [$server, $name])
Если нужен массив с id элементов, который устраивает поиску.

Если использовать твой код, то вот список всех id
$infor = R::find('info', 'server = ? AND name = ?', [$server, $name]);
foreach ($infor as $info ){
                    var_dump($info ->id);
                }

Внутри цикла делаешь что надо, там уже всё есть.

Если надо и ты уверен что строка одна используй R::findOne
$info = R::findOne('info', 'server = ? AND name = ?', [$server, $name]);
var_dump($infr ->id);


Но я не знаю какой конечный результат ожидается.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы