2014-02-03 3 views
-2

У меня есть столбец в базе данных, который представлен как следующий;PHP - редактирование строки из базы данных

<channel\01273123456:d24gf3fm> 

мне нужно экспортировать номер из этой строки, первый «< канал \» всегда то же самое, но конец ID всегда уникален.

В настоящее время у меня есть следующий код, но я не могу думать и не найти то, что мне нужно для экспорта.

//connection 
$dbhandle = mysql_connect($hostname, $username, $password) 
    or die ("Unable to connect to Database"); 
echo "Connected\n"; 

//select DB 

$selected = mysql_select_db("asterisk", $dbhandle) 
or die("Could not select DB"); 

$result = mysql_query("SELECT * FROM TABLE"); 

while($row = mysql_fetch_array($result)) { 
     echo echo "channel:".$row{'channel'}."\n"; 

} 

Надеюсь, кто-то может помочь, это сводит меня с ума.

+0

Это 'эхо эхо«канала:».. $ Строка {«канала»}' неверен, и вам не хватает концовки запятой на вершине, что , –

+0

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

+0

это недопустимо-> '" SELECT * FROM TABLE "'; использовать mysqli или pdo; 'echo echo' недействителен. сначала устраните простые проблемы, а затем посмотрите, что произойдет. –

ответ

1

SubStr, кажется, функция Вы ищете:

substr и strpos.

попробовать что-то вроде этого (в зависимости от того, если вам нужно всю последнюю часть строки или только часть до тех пор, «:»:

$yourString = substr($row['channel'], strpos($row['channel'], '\')); 

даст вам всю подстроку Если вам не нужны. часть после того, как символ «:» вам не нужно никакого раскола снова yourString от 0 до позиции «:».

$yourString2 = substr($yourString, 0, strpos($subString, ':')); 
1

Это должно сделать трюк, и в соответствии с просьбой Тадман и это функция :)

public function cleanMyString($string) 
{ 
    // remove channel garbage 
    // 01273123456:d24gf3fm > 
    $string = substr($string, 10, (strlen($string) - 10)); 

    // remove space and > 
    // 01273123456:d24gf3fm 
    $string = substr($string, 0, -2); 

    // split on colon 
    // $colons[0] = 01273123456 
    // $colons[1] = d24gf3fm 
    $colons = explode(':', $string); 

    // first item in array is the channel 
    echo 'Channel: '.$colons[0].'<br><br>'; 
    // second item is ID 
    echo 'ID: '.$colons[1]; 
} 

// string, yay! 
cleanMyString('<channel\\01273123456:d24gf3fm>'); 
+0

Это сделало бы намного больше смысла в функции. Встроенный код, подобный этому, создает большой беспорядок. – tadman

+0

@tadman хорошая точка – MonkeyZeus

+0

Ницца, выглядит лучше, хотя действительно «эхо» не должно быть внутри функции. Вместо этого: 'echo cleanMyString (...)'. Подобная функция не должна предполагать, как будет использоваться результат. – tadman

0

Вы пробовали эти?

SELECT Right (LEFT(`your_column`, 21),11) as numbers 
from asterisk 

или это

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(`your_column`,'\', -1),':', 1) as numbers 
from asterisk 
Смежные вопросы