Как я могу вставить несколько значений в базу данных?

0

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

Я попытался поместить имя в тег, но он только вставляет в базу данных, последний тег, я хочу вставить все теги.

Здесь мой код

<script type='text/javascript'>
$(window).load(function(){

function closer(){
    $('#close').live('click', function() {
            $(this).parent().remove(); 
    });
}

$('#tags').keypress(function(e) {
    if(e.which == 32) {
        var tx = $('#tags').val();
        if (tx) {
            $(this).val('').parent().before('<li class="tags"><span><input type="hidden" value="'+tx+'" name="tags">'+tx+'</input></span><a style="cursor:pointer;" id="close">[x]</a></li>');
            closer();
        }
    }
});
});

</script>

<?php
include(PATH_MODULE . '/joboffers/view/joboffers_view.php');

//add job offer function
function addjo(){

    connect();
    addjoview();

//check if the button was clicked

      if (isset($_POST['add_jo'])){

        if ($_POST['job_category']) {
             $job_category  = mysql_real_escape_string($_POST['job_category']);
             $check1 = 0;
        } else {
            $check1 = 1;
        }

         if ($_POST['description']) {
             $description  = mysql_real_escape_string($_POST['description']);
            $check2 = 0;
        } else {
            $check2 = 1;
        }

      if ($_POST['job_name']) {
             $job_name  = mysql_real_escape_string($_POST['job_name']);
            $check3 = 0;
        } else {
            $check3 = 1;
        }

    if ($_POST['hiring_manager']) {
            $hiring_manager  = mysql_real_escape_string($_POST['hiring_manager']);
            $check4 = 0;
        } else {
            $check4 = 1;
        }

     if ($_POST['tags']) {
             $tags  = mysql_real_escape_string($_POST['tags']);
             $check5 = 0;
        } else {
            $check5 = 1;
        }

     if ($_POST['localization']) {
             $localization  = mysql_real_escape_string($_POST['localization']);
             $check6 = 0;
        } else {
            $check6 = 1;
        }

     if ($_POST['attributes']) {
             $attributes  = mysql_real_escape_string($_POST['attributes']);
             $check7 = 0;
        } else {
            $check7 = 1;
        }

     if ($_POST['contract_type']) {
             $contract_type  = mysql_real_escape_string($_POST['contract_type']);
             $check8 = 0;
        } else {
            $check8 = 1;
        }

    if ($_POST['professional_exp']) {
             $professional_exp  = mysql_real_escape_string($_POST['professional_exp']);
             $check9 = 0;
        } else {
            $check9 = 1;
        }

//verify if all fields are right

       if ($check1 == 0 && $check2 == 0 && $check3 == 0 && $check4 == 0 && $check5 == 0 && $check6 == 0 && $check7 == 0 && $check8 == 0 && $check9 == 0){

           $query =("INSERT INTO job_offers (job_category, description, job_name, hiring_manager, tags, localization, attributes, contract_type, profissional_experience) VALUES ('" . $job_category . "','" . $description . "','" . $job_name . "','" . $hiring_manager . "','" . $tags . "', '" . $localization . "', '" . $attributes . "', '" . $contract_type . "', '" . $professional_exp . "')");
            db_query($query, '+');
            echo "Congratulations! You have been successfully registered in our system.";
        } else {
            echo "Ops, something went wrong!";
        }
    }
}
?>

HTML

<form method="POST">
                <br>
                   <label>Job category</label>
                          <input type="text" name="job_category" maxlength="100" >
                            <br><br>
                   <label>Description</label>
                    <textarea cols="22" rows="3" name="description"></textarea>
                            <br><br>
                   <label>Job name</label>
                          <input type="text"  name="job_name" maxlength="130" >
                            <br><br>
                   <label>Hiring manager</label>
                          <input type="text"  name="hiring_manager" maxlength="130" >
                            <br><br>
                   <label>Tags</label>
                   <div id="wrapbox">
                     <div id="box">
                           <input type="text"  id="tags" class="tagstype" maxlength="230">
                           </div>
                           </div>
                            <br><br>
                    <label>Localization</label>
                          <input type="text"  name="localization" maxlength="130" >
                            <br><br>
                    <label>Attributes</label>
                          <input type="text"  name="attributes" maxlength="130" >
                            <br><br>
                    <label>Contract type</label>
                          <input type="text"  name="contract type" maxlength="130" >
                            <br><br>
                    <label>Professional experience</label>
                          <input type="text"  name="professional_exp" maxlength="130" >
                            <br><br>
                             <input name="add_jo" type="submit" />
        </form>
  • 0
    поделитесь запросом
  • 0
    да @ PatrikQ вы правы ... но я не вижу ни одного запроса в приведенном выше коде, поэтому я просто поделился примером :(
Показать ещё 1 комментарий
Теги:

1 ответ

0
Лучший ответ

Попробуйте изменить это

<input type="hidden" value="'+tx+'" name="tags">

к этому

<input type="hidden" value="'+tx+'" name="tags[]">

Затем, в вашем PHP-коде, сделайте что-то вроде этого

 if ($_POST['tags']) {
         $tags  = mysql_real_escape_string(implode(",", $_POST['tags']));
         $check5 = 0;
    } else {
        $check5 = 1;
    }

Это добавит список тэгов, разделенных запятыми, в поле ваших tags в вашей таблице. Если вы предпочитаете разделять пространство, просто используйте implode(" ", $_POST['tags']).

При этом я предлагаю реструктурировать вашу базу данных, чтобы у вас не было столбец tags в таблице job_offers. Вместо этого у вас будет таблица job_offer_tags которая будет иметь id столбцов, job_id и tag, и вы вводите только отдельные теги в столбец tag.

  • 0
    большое спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню