проблема в структуре php кода - PullRequest
0 голосов
/ 15 июня 2011

у меня есть динамическое поле, которое имеет максимум 4 входа.

Если я запишу 4 входа, которые существуют в базе данных, я получу

   input0 company // $num0
   "error" =  $num1
   input1 company // $num2
   "error" =  $num3
   input2 company // $num4
   "error" =  $num5
   input3 company // $num6

Но если их нет в базе данныхпорядок первого ввода изменяется , потому что время не воспроизводится:

   "error" =  $num0
   input1 company // $num1
   and the order is changed....//problem

Основная проблема заключается в том, что мне нужно знать, какой ввод существует в базе данных или нет.

скрипт

 function checkEmployeer($db, $form) {  
        $i=0;
        foreach ($form['job'] as $value) {

                $sql = $db -> prepare("SELECT `employer` FROM `employer` WHERE employer=?");

                $sql -> bind_param('s', $value);

                $sql -> execute();

                while ($sql -> fetch()) { //problem
                    ${'num'.$i++} = $value; //problem - $num0 = $value if exists in DB
                }   

                ${'num'.$i++} = "error"; //problem - $num0 or $num1 = depends of while result...    
        }

        for ($i = 0; $i < sizeof($form['job']); $i++) {

            if (${'num'.$i} != "error" && ${'num'.$i} == $form['job'][$i]) {
                echo ("already exists in the db".$i);
            }
            else {
                $sql = $db -> prepare("INSERT INTO `database_charts`.`employer` (`employer`) VALUES (?)"); 

                $sql -> bind_param('s', $form['job'][$i]);

                $sql->execute();    
                echo ("insert");
            }
        }   
    }

как я могу это решить?я понятия не имею ...

1 Ответ

1 голос
/ 15 июня 2011

Создайте ключ для работодателя и ВСТАВЬТЕ его, ничего не проверяя, disabled_rows () сообщит вам, был ли он вставлен или нет.
Вы не получите дубликаты, если database_charts. employer определено как ключ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...