Вы используете неправильный оператор: ||
означает «логическое ИЛИ»; то, что вы, похоже, ищете, это &&
, то есть «логическое И».
Код делает именно то, что вы сказали , что нужно сделать ( см. Документацию ); тот факт, что вы намеревались , что-то еще не имеет отношения к компьютеру:
if (!empty($_GET['pID']) || !empty($_GET['pName']) || !empty($_GET['pDesc']) || !empty($_GET['pPrice']))
означает «если pID не пустой ИЛИ pName не пустой ИЛИ ...»; как только одно или несколько полей не пусты, условие оценивается как истинное.
Что вы можете сделать, чтобы получить то, что вы имели в виду:
- заменить ИЛИ на И (
&&
)
- use
if (!(empty($_GET['pID']) || empty($_GET['pID'] ...))
- обратите внимание, что все выражение отрицается в скобках
(читайте законы Де Моргана , чтобы понять, почему эти два решения эквивалентны)