Einfügen array in EINEM Feld in mysql

Ich einfügen möchte ein array in EINEM Feld in der mysql-Datenbank mit PHP ..

diese Arbeit ist fein :

HTML :

anotherField :<input type="text"  name="anotherField" />

fax :<input type="text"  name="f[]" />
email :<input type="text"  name="f[]" />
phone :<input type="text"  name="f[]" />

PHP (ich verwende CodeIgniter Rahmen) :

<?php
    function addCustomRow($tableName)
    {

    $arr = $this->input->post('f');
    $field = implode("|", $arr);

        $data = array(
        'anotherField'          => $this->input->post('anotherField'),
        'field'             => $field
        );

        $this->db->insert($tableName, $data);
    }
?>

und ich bekomme die Daten in mysql wie diese

fax|email|phone

ABER ..

Meine Frage ist .. ich möchte viele arrays, die im gleichen Bereich .. Wie diese :

fax|email|phone :br: fax|email|phone :br: fax|email|phone ..

Ich habe versucht, einige Sache wie diese :

Html :

First array :
fax :<input type="text" class="inp" name="f[0][0]" />
email :<input type="text" class="inp" name="f[0][1]" />
phone :<input type="text" class="inp" name="f[0][2]" />

Second array :
fax :<input type="text" class="inp" name="f[1][0]" />
email :<input type="text" class="inp" name="f[1][1]" />
phone :<input type="text" class="inp" name="f[1][2]" />

PHP :

<?php
    function addCustomRow($tableName)
    {

    $arr = $this->input->post('f[]');
    $field = implode(":br:", $arr);

        $data = array(
        'anotherField'          => $this->input->post('anotherField'),
        'field'             => $field
        );

        $this->db->insert($tableName, $data);
    }
?>

aber es sagt Falsch [ Severity: Notice Message: Arrays zu-string-Konvertierung ]
und bekomme ich Daten in mysql wie diese

array :br: array  

EDIT :

Will ich tun, wie auf diese Weise, weil ich eine Tabelle Kategorien ..
und jede Katze hat eigene details ( Felder ) .. also, wenn ich die neue Katze habe ich nur einige Sache wie diese

       name of cat : <input type="text"  name="name" />

   <!-- Fields -->
    Fields //

    Field 1 :
    title of the filde : <input type="text"  name="f[0][0]" />
    type : <input type="text"  name="f[0][1]" /> <!-- 1= text , 2= select , 3= textarea ..  -->
    default value : <textarea rows="8" cols="20" name="f[0][2]"> </textarea> <!-- if select type write value1::value2::value3  ... -->



Field 2 :
title of the filde : <input type="text"  name="f[1][0]" />
type : <input type="text"  name="f[1][1]" /> <!-- 1= text , 2= select , 3= textarea ..  -->
default value : <textarea rows="8" cols="20" name="f[1][2]"> </textarea> <!-- if select type write value1::value2::value3  ... -->

Field 3 :
title of the filde : <input type="text"  name="f[2][0]" />
type : <input type="text"  name="f[2][1]" /> <!-- 1= text , 2= select , 3= textarea ..  -->
default value : <textarea rows="8" cols="20" name="f[2][2]"> </textarea> <!-- if select type write value1::value2::value3  ... -->

und ich kann hinzufügen, eine beliebige Anzahl von Feldern hier ..

in der Datenbank möchte ich die Daten eingefügt, wie diese :

[nameOfBook|1|anyName :br: noOfPages|1|anyNo ]

und in die andere Katze wie diese zum Beispiel :

[colorOfcar|2|red::black::green :br: Preis|1|anyPrice ]

Hilfe ?

vielen Dank im Voraus ..


@Justin Johnson

Dank für deine Antwort, aber es funktioniert nicht.
Ich habe mit $data var einfügen alle Daten, aber ich benutze Sie beantworten, wie diese

function addCustomRow($tableName)
{

    $data = array(
        'name'          => $this->input->post('name'),
        'fields'            => serialize($this->input->post('f[]'))
        );

    $this->db->insert($tableName, $data);
}

und ich bekomme Daten mysqyl wie dieses ( b:0; ) !!

//

@Suku Dank .. ich habe es verwendet, bevor Sie Fragen, aber ich wusste nicht, wie .. Wie kann ich es in meinem Fall hier ? ..

@Alex

weil ich die Tabelle mit dem Namen (Kategorien) und jede Katze hat eigene Felder wie :

carsCat >
  type :
  color:
  details:

BooksCat >
nameOfbook:
writer:
numberOfpage:

usw ..
Ich finde diese Art der Beste Weg, vielleicht in meinem Fall .. irgendwelche Vorschläge?

InformationsquelleAutor me.again | 2010-02-01

Schreibe einen Kommentar