- Как проверить, возвращают ли выбранный запрос значения или нет с помощью PHP и SQLite 3
- Решение
- Другие решения
- проверка — как проверить, выбран ли в php выпадающий список, кратный = несколько?
- Решение
- Другие решения
- post — проверка PHP, есть ли файл, выбранный для загрузки
- Решение
- Другие решения
- PHP проверяет, есть ли файл, выбранный для загрузки
- 3 ответа
Как проверить, возвращают ли выбранный запрос значения или нет с помощью PHP и SQLite 3
В настоящее время я пытаюсь получить значения из базы данных, но я хочу проверить, есть ли результат с этими условиями:
$select = $db->query(«SELECT * FROM views WHERE address = ‘$ip’ AND page = »»);
После некоторого поиска я не могу найти ничего конкретного, но думаю, что скучаю по нему.
И тогда это решение сработало (предыдущее всегда не удавалось):
while($row = $select->fetchArray(SQLITE3_ASSOC) ) < $exists = TRUE; break; >if($exists == TRUE)< // result returned >else < // no results >
Но это, кажется, сложно … есть ли способ проверить, вернул ли запрос select что-то или ничего?
Решение
Вы можете проверить это просто в «runtime»:
$emptyArr = array(); $filledArr = array(1,2,3,4,5); if ($emptyArr) < echo 'Empty array is not empty!'; >if (!$filledArr)
Потому что это: http://php.net/manual/ru/sqlite3result.fetcharray.php
Вернусь заполненный массив или же ложный. Тогда это равно:
$arr = array(); var_dump((false == $arr)); // true
И специально для всех головокружений! Невероятный, сладкий, медовый раствор:
if ($res = $select->fetchArray(SQLITE3_ASSOC)) < foreach ($res as $item) < // output >> else < // nothing >
Другие решения
Не могли бы вы взять переменные и могли бы использовать Исеть или же пустой
if(!empty($var)) < // Variable is not empty and is set >if(isset($var)) < // Variable is set, may be empty though. >if(empty($var)) < // Variable is not set or is empty. >if(!isset($var)) < // Variable is not set. >
Это также будет работать для массивов и ключей массивов.
Есть функция с именем * -> numRows ();
который возвращает количество строк, извлеченных из базы данных. Я не использую sqlite, но я почти уверен, что dbquery возвращает массив значений из базы данных (ну, в данном случае объект) вместе с true / false, если он был успешным или нет.
$select = $db->query("SELECT * FROM views WHERE address = '$ip' AND page = ''");$rows = $select->numRows(); echo $rows; //returns # of rows or if ($rows) < //return anything but 0 would eval true.. >
Никто не дал идеальный ответ, но каждый комментарий помог мне понять это правильно. Итак, если у вас возникла та же проблема, проверьте все комментарии, а затем мой ответ. Специальная помощь от @Deep
if($select->fetchArray(SQLITE3_ASSOC))< // results returned >else< // no results. empty. >>
проверка — как проверить, выбран ли в php выпадающий список, кратный = несколько?
у меня есть multiple=multiple выпадающий список, и я хочу проверить, выбрал ли пользователь какую-либо опцию или не использует код PHP. Если нет, то я хочу отобразить сообщение об ошибке. Как я могу это сделать?
Решение
Вы должны объявить свой HTML следующим образом:
И тогда в PHP вы получите массив значений:
Другие решения
";print_r($_POST['ddlskill']); // [PHP, JSP, Java, . ] > ?>
$value) < print_r($value); >> else < print_r($_POST['ddlskill']); >> ?>
post — проверка PHP, есть ли файл, выбранный для загрузки
У меня есть эта форма, и я хотел бы проверить, выбрал ли пользователь файл или нет.
Я написал этот код PHP, чтобы проверить его
if (empty($_POST) === false) < $fileupload = $_POST['file_upload']; if (empty($fileupload) === true) < // echo "Error no file selected"; >else < print_r($_FILES); >>
Но я получаю «Ошибка, файл не выбран», даже если я выбираю что-то. Любая подсказка? Извините, я действительно новичок в PHP.
РЕДАКТИРОВАТЬ: Я уже пробовал заменить $fileupload = $_FILES[‘file_upload’] но он печатает пустую ошибку
(Array ([file_upload] => Array ([name] => [type] => [tmp_name] =>
[ошибка] => 4 [размер] => 0)))
Решение
Использовать $_FILES массив и UPLOAD_ERR_NO_FILE постоянная:
if(!isset($_FILES['file_upload']) || $_FILES['file_upload']['error'] == UPLOAD_ERR_NO_FILE) < echo "Error no file selected"; >else
Вы также можете проверить UPLOAD_ERR_OK который указывает, был ли файл успешно загружен (присутствует и ошибок нет).
Примечание: вы не можете использовать empty() на $_FILES[‘file_upoad’] массив, потому что даже если файл не загружен, массив все еще заполнен и error элемент установлен, что означает empty() вернусь false ,
Другие решения
Сначала нажмите «Отправить» без выбора файла.
/* check input 'submit' */ if (isset($_POST['submit']))
> Массив ( > [file_upload] => Массив > ( > [name] => > [тип] => > [tmp_name] => > [ошибка] => 4 > [размер] => 0 >) > >)
Есть множество [file_upload] [error] = 4, НЕ ноль или пробел.
Значение кода = 4, что означает UPLOAD_ERR_NO_FILE.
Если успех и ошибки нет, кодовое значение = 0.
Проверьте Вот
Так что используйте функцию Исеть, не пустой
/* check input submit */ if (isset($_POST['submit'])) < /* check input file_upload on error */ if (isset($_FILES['file_upload']['error'])) < /* check code error = 4 for validate 'no file' */ if ($_FILES['file_upload']['error'] == 4) < echo "Please select an image file .."; >> >
В соответствии с http://www.php.net с php 4.1.0 доступно $ _FILES. Эта переменная хранит информацию о загруженных файлах. Так что вы должны код
$fileupload = $_FILES['file_upload']; if (isset($fileupload)) < print_r($_FILES); >else
PHP проверяет, есть ли файл, выбранный для загрузки
Но я получаю «Ошибка без файла», даже если я что-то сделаю. Любая подсказка? Прости, что я действительно новичок в PHP. EDIT: я уже пытался заменить $fileupload = $_FILES [‘file_upload’], но он печатает пустую ошибку (Array ([file_upload] = > Array ([name] = > [type] = > [tmp_name] = > [error] = > 4 [size] = > 0))), когда я не вхожу в файл?
@showdev Я уже пытался заменить $ fileupload = $ _FILES [‘file_upload’], но он печатает пустую ошибку (Array ([file_upload] => Array ([name] => [type] => [tmp_name] => [error] => 4 [size] => 0))) когда я НЕ ввожу файл?
Это правильно: If no file is selected for upload in your form, PHP will return $_FILES[‘userfile’][‘size’] as 0, and $_FILES[‘userfile’][‘tmp_name’] as none. — php.net
3 ответа
Используйте массив $_FILES и константу UPLOAD_ERR_NO_FILE :
if(!isset($_FILES['file_upload']) || $_FILES['file_upload']['error'] == UPLOAD_ERR_NO_FILE) < echo "Error no file selected"; >else
Вы также можете проверить UPLOAD_ERR_OK , который указывает, был ли файл успешно загружен (присутствует и нет ошибок).
Примечание: вы не можете использовать empty() в массиве $_FILES[‘file_upoad’] , потому что даже если файл не загружен, массив все еще заполняется и элемент error установлен, что означает, что empty() вернет false .
Спасибо, я уже попробовал то, что предложили другие люди, прежде чем опубликовать это, и они не правы. Это не работает. Но твой код работает! Большое спасибо. Я новичок и все еще учусь, также спасибо за совет о empty () 🙂 Вы удивительны.
Проверка с помощью Empty более надежна, if(!empty($_FILES[‘file_upload’])) Empty if(!empty($_FILES[‘file_upload’])) или if(empty($_FILES[‘file_upload’])) Действительно спасибо MrCode .. !!
Сначала нажмите «Отправить» без выбора файла
/* check input 'submit' */ if (isset($_POST['submit']))
> Array ( > [file_upload] => Array > ( > [name] => > [type] => > [tmp_name] => > [error] => 4 > [size] => 0 > ) > > )
Существует массив [file_upload] [error] = 4, НЕ нулевой или пробельный.
Значение кода = 4, что означает UPLOAD_ERR_NO_FILE.
Если успех и отсутствие ошибки, значение кода = 0.
Проверьте здесь
Поэтому используйте функцию isset, а не empty
/* check input submit */ if (isset($_POST['submit'])) < /* check input file_upload on error */ if (isset($_FILES['file_upload']['error'])) < /* check code error = 4 for validate 'no file' */ if ($_FILES['file_upload']['error'] == 4) < echo "Please select an image file .."; >> >
Спасибо за этот фрагмент кода, который может оказать некоторую немедленную помощь. Правильное объяснение значительно повысило бы его образовательную ценность, показав, почему это хорошее решение проблемы, и сделало бы его более полезным для будущих читателей с похожими, но не идентичными вопросами. Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение и указать, какие ограничения и предположения применяются.
В соответствии с http://www.php.net существует $_FILES, доступный с php 4.1.0. Эта переменная хранит информацию о загруженных файлах. Поэтому вы должны закодировать
$fileupload = $_FILES['file_upload']; if (isset($fileupload)) < print_r($_FILES); >else