Birden çok sütun için veri split

2 Cevap php

Bu anda, bir sütunda bulunan veriler:

"Başlık Bilgisi - İşte Şirketi - İşte City, ST"

ST devlet yani GA temsil

Bazen benim veri bu gibi görünüyor:

"Başlık Bilgisi - İşte Şirketi - Amerika Birleşik Devletleri"

Veri "title" adlı sütun üzerinde ve tırnak olmadan.

Nasıl adında 4 yeni sütunlar için, bu kullanarak php bölerim:

"New_Title", "Şirket", "Şehir", "Devlet"

Hiçbir şehir ve devlet sadece ülke olduğunu, ikinci örnekte, bir "şehir" sütuna gitmek için ok olurdu.

Tablo şema:

CREATE TABLE table ( 
id int(8) NOT NULL DEFAULT '0', 
Title char(100) DEFAULT NULL, 
New_Title char(100) DEFAULT NULL, 
Company char(100) DEFAULT NULL, 
City char(100) DEFAULT NULL, 
State char(100) DEFAULT NULL, 
PRIMARY KEY (id) 
) 
ENGINE=MyISAM DEFAULT CHARSET=latin1;

Zaman ayırdığınız için teşekkürler.

Ossi

2 Cevap

"-" Ilk bölme, daha sonra üçüncü eleman "," iade bölünmüş

<?PHP
$title = $row['title']; // or however you get the title.
$parts = explode("-",$title);
if ( count($parts) != 3) die("Invalid title: $title");
$newtitle = $parts[0];
$company = $parts[1];
$location_parts = explode(',',$parts[2]);
$city = $location_parts[0];
$state = $location_parts[1];

//now you've got $newtitle, $company, $city, and $state to do something productive with.

Ben 2 yolları bakın:

Birincisi: regexpi gibi kullanın

(^[^-]*) - ([^-]*) - ([^,]*),?(.*)$

preg_match ile

İkincisi: tüm php kod kullanmayın. SQL Update yeterli olacaktır

UPDATE mytable t SET t.title = SUBSTRING_INDEX(t.value, ' - ', 1), t.company = SUBSTRING_INDEX(SUBSTRING_INDEX(t.value, ' - ', 2), ' - ', -1), t.city = SUBSTRING_INDEX(t.address, ' - ', -1);

ve daha sonra

UPDATE mytable t SET
t.city = SUBSTRING_INDEX(t.city ',', 1),
t.state = SUBSTRING(t.city, LENGTH(SUBSTRING_INDEX(t.city, ',', 1))+3);