mysql_query в цикле while - PullRequest
       5

mysql_query в цикле while

1 голос
/ 26 октября 2010

я пытаюсь казнить У меня есть HTML-форма на странице такого рода:

Name: <input type="text" id="namebox" value="" name="fields[]" /> <br />
Position: <input type="text" id="positionbox" value="" name="fields[]" /> <br />

<input type="hidden" name="createcard">     
<input type="submit" value="Create">

.. и 3 других поля. Я передаю эти 5 полей формы методом POST в файл process.php, который имеет следующую функцию для вставки элементов массива в базу данных mysql.

if(isset($_POST['createcard'])){
    $this->procCreateCardtheme1();
..
..

    function procCreateCardtheme1(){
    global $session;

            $cardData = $_POST['fields'];
            $username=$session->username;
            $sno=1;
            echo count($cardData);
            while($sno < count($cardData))
            {
             $v=$cardData[$sno];
             echo $v;
             mysql_query("INSERT INTO carddata VALUES ('$username', $sno, '$v', 1)");
             $sno++;
            }

Теперь приведенный выше оператор echo возвращает ожидаемый результат, то есть пять или около того полей. Но mysql_query выполняется только один раз. Он просто хранит первую запись в БД и больше ничего. Даже повторная отправка формы ничего не делает. Это всего лишь одна запись, которая хранится в БД. Есть идеи?

Ответы [ 2 ]

2 голосов
/ 26 октября 2010

У вас есть уникальное ограничение на username в таблице carddata? Это приведет к сбою второй вставки.

Для отладки вы должны добавить в свою программу проверку ошибок:

mysql_query("INSERT INTO carddata VALUES ('$username', $sno, '$v', 1)")
    or trigger_error(mysql_error());

Вам также может понадобиться использовать mysql_real_escape_string, чтобы избежать синтаксических ошибок или возможных уязвимостей внедрения SQL, если строковые данные могут содержать кавычки.

0 голосов
/ 23 июня 2019

Проблема с повторением одного цикла возникает, когда у вас есть проблема с переменной для запроса ($ query) и Result Object ($ result).

Попробуйте другое имя для переменной внутри цикла WHILE или отладьте переменную внутри цикла.

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