Програмисти ! - Има ли тарикатски начин ?

nortrant

Well-Known Member
значи трябва да направя следното:

(1, 'Sofia', 'SF'),
(2, 'Pleven', 'Pl'),
(3, 'Varna', 'Vr'),

така се записват градовете в бд

ако имам списък с градовете и техните съкращения
може ли да се измисли нещо да ги направя по-бързо ?
:D
 
От: Програмисти ! - Има ли тарикатски начин ?

Код:
$a = "(1, 'Sofia', 'SF'),
(2, 'Pleven', 'Pl'),
(3, 'Varna', 'Vr'),";


$b = explode('
', $a);

foreach ($b as $v) {

    $a = preg_replace('|^\(([0-9]+), \'(.*)\', \'(.*)\'\),|', '$1', $v);
    $b = preg_replace('|^\(([0-9]+), \'(.*)\', \'(.*)\'\),|', '$2', $v);
    $c = preg_replace('|^\(([0-9]+), \'(.*)\', \'(.*)\'\),|', '$3', $v);
}

$b = explode('
„нов ред"
', $a);

$а $б $ц са ти съответно ид-град-съкращение
 
От: Програмисти ! - Има ли тарикатски начин ?

Имаш списък с градове и съкращения и искаш да го вкараш в базата ли?
Най-лесно става с една команда LOAD DATA INFILE - даваш му ги в текстов файл и то си ги попълва. Текстовия файл може да е нещо такова:
Sofia,SF
Plovdiv,PB
Varna,VN
......

Кажи ако е това да ти пейстна точно синтаксиса.
 
От: Програмисти ! - Има ли тарикатски начин ?

@po_taka, съжелявам, нищо не разбрах ... как да го задействам този скрипт ? :D

@against, да, това искам !
изглежда ми лесно и че ще ми свърши работа както го обясняваш :)
 
От: Програмисти ! - Има ли тарикатски начин ?

Малко се забавих, ама ме нямаше... :) ето го ако още не си се оправил:

значи за да сработи трябва да можеш да си качиш текстовия файл на сървъра, така че mysql-a да го вижда.
И командата трябва да е това:

LOAD DATA INFILE '/tmp/faila-s-gradovete.csv'
INTO TABLE gradove
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
(colona_za_grad, colona_za_sakra6tenie)
Ако обаче неможеш да качиш текстовия файл на сървъра има друг вариант - с някакъв текстов редактор да си направиш Replace във файла, така че да станат на INSERT-и:
INSERT INTO gradove (grad, sakrashtenie) VALUES ('Sofia', 'SF');
INSERT INTO gradove (grad, sakrashtenie) VALUES ('Varna', 'VN');
.....
И това го пускаш после в phpmyadmin-a
 
От: Програмисти ! - Има ли тарикатски начин ?

пак ви моля за малко помощ ...

може ли да се направи следното
имам следнат фраза:

Форум за онлайн бизнес - предприемач

със скрипт да се преобразува на :

Форум,онлайн,бизнес,предприемач

т.е. да маха паузите между думите,тиретата и всички думи който имат 1 или 2 букви в тях ...

Мерси отново !
 
Заповядай. :)

PHP:
<?php
$removeChars = array('-', '/', '\\', ',');
$string = 'Форум за \ онлайн, бизнес - предприемач / ';
$string = trim($string);
$string = str_replace($removeChars, '', $string);
$words = explode(' ', $string);
$words = array_unique($words);

foreach ($words as $k => $word) {
    if (strlen($word) < 3) {
        unset($words[$k]);
    }
}

$finalString = implode(',', $words);

echo $finalString;
?>
 
От: Програмисти ! - Има ли тарикатски начин ?

vbTK, скрипта работи !

ще може ли да се направи в едно поле да се въвежда фразата и след кликването върху един бутон да се показва резултата ?
 
От: Програмисти ! - Има ли тарикатски начин ?

Извинявай !

Мерси vbTK, че ми помогна !
 
PHP:
<?php
$removeChars = array('-', '/', '\\', ',');
//$string = 'Форум за \ онлайн, бизнес - предприемач / ';
$finalString = '';

if (isset($_POST['input_string'])) {
    $string = $_POST['input_string'];
    $string = trim($string);
    $string = str_replace($removeChars, '', $string);
    $words = explode(' ', $string);
    $words = array_unique($words);

    foreach ($words as $k => $word) {
        if (strlen($word) < 3) {
            unset($words[$k]);
        }
    }

    $finalString = implode(',', $words);

    //echo $finalString;
}

?>

<html>
    <head>
        <title>Скрипт</title>
    </head>
    <body>
        <form method="post" action="">
            Въведи текст: <input type="text" name="input_string" onclick="javascript:this.focus();this.select();"><br>
            <input type="submit" value="Изпрати"><br>
            <br><br>
            Резултат: <input type="text" name="output_string" value="<?php echo $finalString ?>" onclick="javascript:this.focus();this.select();" readonly>
        </form>
    <body>
</html>
Айде готов си. Ще черпиш едно събмитване като ми потрябва. :)
 

Горе