2015-06-24 1 views
1

Я работаю над проектом, и II имеет подобный сценарий: У меня есть много полеев в моей таблице:Как вставить несколько значений в определенное поле в таблице с помощью mysqli?

table_name : transaction_tbl 
-id 
-name 
-description 
-ref_number : text(datatype) 

В моих вставках вот мой код:

$sql = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) VALUES ('$name','$desccription',$ref_number)"; 

if ($conn->query($sql) === false){ 
        trigger_error('Wrong SQL: ' . $sql . 'Error: ' . $conn->error , E_USER_ERROR); 
       }else { 
        echo "Successful ! Data is inserted in database ^__^" ; 

       } 

Как видно из названия сам ref_number или ссылочный номер, поэтому будет время, когда у меня будет много ссылочного номера, как я могу его вставить, если он будет иметь несколько значений? Спасибо :)

UPDATE:

Я хочу что-то вроде этого:

name description   ref_number 
bag  to be use    10359435846 
           05438547656 
           035848576 
+0

Используйте отдельную таблицу с одной строкой за транзакцию и ссылочный номер. Это называется соединительной таблицей. –

+0

как я могу это сделать? можете ли вы привести пример? –

+1

Вы не можете иметь несколько vals в одной ячейке. он нарушает основные правила db. Просто разделите это на две таблицы и получите внешние ключи для соединения thm. Изучите нормализацию db. Есть много примеров. Здесь вам нужно взять вашу ненормализованную (0 nf) таблицу, по крайней мере, до 1-го нормализованного уровня (1 nf). Но его рекомендуется нормализовать, по крайней мере, до 3-го уровня. https://www.google.com/search?q=db+normalizaton+guide&ie=utf-8&oe=utf-8#q=db+normalization+guide –

ответ

0

для какой цели? почему бы вам просто не вставить новую строку с тем же именем и описанием с другим номером ref_number?

, но если вы хотите, что вы можете сцепить свой новый ref_number с существующей ..

сначала проверить, если она уже есть получить его значение, а затем сцепить новый порядковый номер .. или если он Безразлично» т существует, вставить новую строку ..

$sql = "SELECT `ref_number` FROM `transaction_tbl` 
WHERE `name`='$name' AND `description`='$description'"; 


$query = mysql_query($sql); 
if(mysql_num_rows($query) > 0) 
{ 
    $row = mysql_fetch_array($query); 
    $new_ref = $row['ref_number'] . '|' . $ref_number; 
    $upd = "UPDATE `transaction_tbl` SET `ref_number`='$new_ref' 
      WHERE `name`='$name' AND `description`='$description'"; 
} 
else 
{ 
    $ins = "INSERT INTO transaction_tbl (`name`,`description`,`ref_number`) 
      VALUES ('$name','$desccription',$ref_number)"; 
    mysql_query($ins); 
} 
+0

что делать, если я просто буду использовать взрыв? Как мне это сделать? –

+0

Я использую также mysqli –

+1

, никогда не делайте этого. Используйте две отдельные таблицы. –

1

не очень хорошая практика, чтобы иметь несколько значений в одной ячейке (и вы никогда не должны, если есть серьезная причина). Он нарушает основные правила db. Просто разделите это на две таблицы и назначьте внешние ключи, чтобы связать их.

Узнать нормализацию db. Есть много примеров. Здесь вам нужно взять вашу ненормализованную (0NF) таблицу, по крайней мере, до 1-го нормализованного уровня (1NF). Но его рекомендуется нормализовать, по крайней мере, до 3-го уровня

google for db normalization tutorials. По вашему запросу ниже изображение даст вам представление (имена полей не такие же, как в вашем вопросе).

0NF to 1NF

Сначала вставьте значения в table1 (таблица членов) и получить вставки идентификатора в PHP использовании $iid = mysqli_insert_id()

Следующих добавить несколько значений, как отдельные строки во вторую таблицу (таблица базы данных) вместе с первичный ключ, полученный на первом этапе.

Имейте в виду, что это не учебный сайт. найти больше информации в сети.

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

  • Нет связанных вопросов^_^