Member 13153537 Ответов: 2

Как исправить эту проблему неверное целочисленное значение: "для столбца 'qual_deg_state_id' в строке 1


у меня есть форма,в которой я заполняю детали cand 10th,12th,diploma, ug и pg details.я вставляю данные с помощью dynfields array.my проблема заключается в том, что если я предоставляю все детали вставки данных успешно, но если я заполняю только одну квалификацию, то это дает
Incorrect integer value: '' for column 'qual_deg_state_id' at row 1
ошибка.Я попытался распечатать данные с помощью print_r funciton .it показывает данные,которые я передаю usinf front-end remaing значения показывают пустые, почему это происходит, пожалуйста, помогите мне, как исправить это заранее спасибо.

Что я уже пробовал:

это мой код для вставки данных
<pre> if ($_POST['dynfields']) {
         foreach ( $_POST['dynfields'] as $key=>$fieldArray ) {
         $boo=$_POST['dynfields'];
         print_r($boo);

             $keys = array_keys($fieldArray);
             $values = array_map("mysql_real_escape_string",$fieldArray);

             $query = mysql_query("INSERT INTO sk_c_qualification (".implode(',',$keys).",qual_cand_id) VALUES ('".implode('\',\'',$values)."','$cand_id')") or die(mysql_error());
         }
     }


//это мой html-код
<pre>	<div class="row">
							<div class="col-md-6">
								<div class="form-group">
						        <label>Board/University<font color="red">*</font></label>
						        <input name="dynfields['+1+'][qual_deg_university]" value="<?php echo $cand_10_uni  ?>"class="form-control" title="Min 4 , Max 150 Only Characters" type="text" placeholder="University/Board" required/>
						    </div>
							</div>
							<div class="col-md-6">
								<div class="form-group">
										<label>College<font color="red">*</font></label>
										<input name="dynfields['+1+'][qual_deg_college]" value="<?php echo $cand_10_uni  ?>" class="form-control" pattern="^[a-zA-Z,\s]{4,150}$" title="Min 4 , Max 150 Only Characters" type="text" placeholder="College" required/>
								</div>
							</div>
						</div>
						<div class="row">
							<div class="col-md-4">
								<div class="form-group">
							    <label>Year of Passing<font color="red">*</font></label>
							    <input id="qual_deg_ug_yop" name="dynfields['+1+'][qual_deg_year]" class="form-control">
							  </div>
							</div>
							<div class="col-md-4">
							    <div class="form-group">
							         <label>State<font color="red">*</font></label>
							          <?php
							           //Include database configuration file
							           include('dbConfig.php');

							           //Get all country data
							           $query = $db->query("SELECT * FROM sk_m_states state ORDER BY state ASC");

							           //Count total number of rows
							           $rowCount = $query->num_rows;
							           ?>
							           <select class="form-control" name="dynfields['+1+'][qual_deg_state_id]" id="qual_deg_ug_state"/>
							             <option value="">Select State</option>
							             <?php
							             if($rowCount > 0){
							               while($row = $query->fetch_assoc()){
							                 echo '<option value="'.$row['state_id'].'">'.$row['state'].'</option>';
							               }
							             }else{
							               echo '<option value="">State not available</option>';
							             }
							             ?>
							         </select>
							   </div>
							</div>

2 Ответов

Рейтинг:
19

GKP1992

Привет,

Ваша база данных ожидает целочисленное значение в этом поле

qual_deg_state_id

но пустая строка не соответствует этой критерии.
Воспользуйся
intval(qual_deg_state_id)
когда вы пытаетесь вставить. Для этого вам придется отказаться от имплода, но он гарантирует, что значение будет целым числом.


Member 13153537

Спасибо за вашу помощь и поддержку, наконец-то я нашел решение.

Рейтинг:
12

Member 13153537

//i have just added one line of code  for previous code it is working fine now//
if ($_POST['dynfields']) {
			 //$loopcount=0;
         foreach ( $_POST['dynfields'] as $key=>$fieldArray ) {

             $keys = array_keys($fieldArray);

             $values = array_map("mysql_real_escape_string",$fieldArray);
						 if($values[qual_deg_id] !="")
						 {
 					 	//print_r("values of keys - ".$values[qual_deg_id]);
   					$query = mysql_query("INSERT INTO sk_c_qualification (".implode(',',$keys).",qual_cand_id) VALUES ('".implode('\',\'',$values)."','$cand_id')") or die(mysql_error());
					}

         }
     }