2015-07-07 2 views
0

Я получил какое-то действие вставки с моим db и хотел проверить php с помощью цикла foreach. Я не понимаю, что не так в коде, потому что нет успешных или неудачных результатов return.Any help будет оценили.Проверить пустые поля на php

<?php 
$PlaceName = $_POST['placeName']; 
$PlaceAddress = $_POST['addressArea']; 
$PlacePhone = $_POST['placePhone']; 
$PlaceWebsite = $_POST['placeWebsite']; 
$OOnWeekday = $_POST['openweekDay']; 
$OOnWeekEnd = $_POST['openweekEnd']; 
$COnWeekday = $_POST['closeweekDay']; 
$COnWeekEnd = $_POST['closeweekEnd']; 
$Lati = $_POST['latitude']; 
$Longi = $_POST['longitude']; 
$btnAddPlace = $_POST['addPlacebut']; 


$dbQueryI = $nesnePDO->prepare("INSERT INTO Places 
         (Place_Name,Place_Address,Place_Phone,Place_Web, 
         OOnWeek_Day,OOnWeek_End,COnWeek_Day,COnWeek_End, 
         Lati_P,Longi_P) 
       VALUES (:P_N,:P_A,:P_P,:P_W, 
         :OOWD_P,:OOWE_P,:COWD_P,:COWE_P, 
         :L_P,:L2_P)"); 


$dbQueryI->bindParam(":P_N",$PlaceName); 
$dbQueryI->bindParam(":P_A",$PlaceAddress); 
$dbQueryI->bindParam(":P_P",$PlacePhone); 
$dbQueryI->bindParam(":P_W",$PlaceWebsite); 
$dbQueryI->bindParam(":OOWD_P",$OOnWeekday); 
$dbQueryI->bindParam(":OOWE_P",$OOnWeekEnd); 
$dbQueryI->bindParam(":COWD_P",$COnWeekday); 
$dbQueryI->bindParam(":COWE_P",$COnWeekEnd); 
$dbQueryI->bindParam(":L_P",$Lati); 
$dbQueryI->bindParam(":L2_P",$Longi); 


$Fields = array($PlaceName,$PlaceAddress,$PlacePhone,$PlaceWebsite, 
       $OOnWeekday,$OOnWeekEnd,$COnWeekday,$COnWeekEnd, 
       $Lati,$Longi); 
$Errors = false; 
foreach ($Fields as $fieldname) 
{ 
    if(!isset($_POST[$fieldname]) || empty($_POST[$fieldname])) 
    { 
     $response['Errors'] = 0; 
     $response['message'] = "Some fields are empty so fill them.."; 
     die(json_encode($response)); 
     $Errors = true; //Yup there are errors 
    } 

} 

if(!$Errors) 
{ 
     $dbQueryI->execute(); 
     $response['Errors'] = 1; 
     $response['message'] = "That's it.."; 
     header('Refresh: 3; url=addplaces.php'); 
     die(json_encode($response)); 

} 
?> 

Извините, я не объяснил проблему четко, потому что я был afk.I отправлен с мобильного. Проблема заключается в том, что вы просто хотите управлять полями, пустыми или нет. У меня есть форма для пользователей и вы хотите собрать их некоторую информацию. Это не весь код, но это те входы, которые я собираюсь проверить. нет результата о какой-либо записи, которая добавляет. Я пробовал несколько разных способов, но они не работают хорошо. Даже некоторые записи полностью пустые. Просто нужно было проверить, что все поля заполняются, а затем вставляются.

+0

Где находятся $ PlaceName, $ PlaceAddress, ... и т. Д.? Также каковы значения этих переменных? – Rizier123

+0

Вы не хотите проверять, пусты ли они, прежде чем связывать их ...? – Rizier123

+0

Определяли ли вы $ PlaceName, $ PlaceAddress, $ PlacePhone, $ PlaceWebsite, $ OOnWeekday, $ OOnWeekEnd, $ COnWeekday, $ COnWeekEnd, $ Lati, $ Longi переменные где угодно? –

ответ

1

Когда вы сделаете это:

if(!isset($_POST[$fieldname]) || empty($_POST[$fieldname])) 

Я думаю, что это всегда будет так, потому что $fieldname уже установлен на значение параметра пост, а не имя параметра. Возможно, вы не видите сообщение об ошибке из-за json_encode(), находящегося внутри die().

Если вы хотите проверить, что ни одна из них не указана, вы можете переместить эту часть кода в начало сценария, но для этого необходимы некоторые изменения.

$Fields = array('placeName', 'addressArea', 'placePhone', 'placeWebsite', 
       'openweekDay', 'openweekEnd', 'closeweekDay', 'closeweekEnd', 
       'latitude','longitude'); 
// Use the names as strings here 

$Errors = false; 
foreach ($Fields as $fieldname) 
{ 
    // You can just use empty() here, because it already includes checking isset() 
    if(empty($_POST[$fieldname])) { 
     $response['Errors'] = 0; // Not sure why errors = 0 here 
     $response['message'] = "Some fields are empty so fill them.."; 
     $response = json_encode($response); // Separate json_encode from die 
     die($response); 

     // This will never execute because the script has already died 
     $Errors = true; //Yup there are errors 
    } 

} 

Тогда вам не придется беспокоиться о проверке $Errors позже, потому что если были ошибки, сценарий бы уже умер.

+0

Он определил ложное значение по умолчанию. Поэтому он должен быть правдой для выполнения запросов. Я не совсем понимаю ваш обсуждаемый совет, но это логично для меня. Все, что я хочу сделать, это проверить, что поля пустые или нет, тогда вставьте :)) Я сейчас на мобильном телефоне, поэтому сейчас не могу попробовать. Я проверю его, когда найду. – 14kubat

+0

Да, это отлично работает для меня! Спасибо, это решено. По сути, это просто любопытно. В чем разница между кодом выше или ниже на php? И извините за поздний ответ, я получил пару встреч. – 14kubat

+0

@ 14kubat Когда вы спрашиваете «в чем разница между кодом выше или ниже», ссылаетесь ли вы на то, почему я предложил переместить эту часть кода в начало скрипта? –

Смежные вопросы