Php проверить был ли выбрать

Как проверить, возвращают ли выбранный запрос значения или нет с помощью 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

Источник

Читайте также:  Php explode for count
Оцените статью