Два вопроса по SQL запросам.

m0le[x]
На сайте с 08.03.2009
Offline
102
570

В общем, есть две небольшие задачки связанные с SQL запросами, очень буду благодарен за помощь.

1. Есть таблица tab, в ней 2 столбца name1 и name2. Необходимо выполнить запрос, что бы заполнить столбец name2 следующим образом. Имя из столбца name1 + какое то предложение.

Например:

name1

стол

стул

диван

name2 сделать:

стол - купить со скидкой!

стул - купить со скидкой!

диван - купить со скидкой!

2. В этой же таблице, есть столбец keys, и имеется текстовый файл с ключами, нужно заполнить столбец следующим образом. Брать 10 рандомных ключей из файла и заполнять подряд все ячейки.

Тут наверно нужен отдельный скрипт и все это в цикле прокрутить. За это готов отблагодарить материально.

Заранее спасибо.

★ Combinat - реально мощная CPA партнерка! (https://combinat.pro/?utm_source=sesign)
4arger
На сайте с 17.12.2008
Offline
95
#1
'm0le[x:
;10865745']
1. Есть таблица tab, в ней 2 столбца name1 и name2. Необходимо выполнить запрос, что бы заполнить столбец name2 следующим образом. Имя из столбца name1 + какое то предложение.
Например:
name1
стол
стул
диван

name2 сделать:
стол - купить со скидкой!
стул - купить со скидкой!
диван - купить со скидкой!

UPDATE tab SET name2 = CONCAT_WS(' - ', name1, 'купить со скидкой!')
'm0le[x:
;10865745']
2. В этой же таблице, есть столбец keys, и имеется текстовый файл с ключами, нужно заполнить столбец следующим образом. Брать 10 рандомных ключей из файла и заполнять подряд все ячейки.
Тут наверно нужен отдельный скрипт и все это в цикле прокрутить. За это готов отблагодарить материально.

Заранее спасибо.

не понял про "10 рандомных ключей", если в таблице может быть N записей.

m0le[x]
На сайте с 08.03.2009
Offline
102
#2

4arger, огромное спасибо за первую ситуацию!

По второму, вот допустим есть файл с ключами (один в строку)

стол

стул

диван

кресло

...

n-ключ

В таблице есть столбец keys, с 1000 ячеек, необходимо из файла брать рандомно 10 ключей и записывать в каждую ячейку через запятую.

keys:

стол, стул ... 10-й ключ

стул, диван ... 10-й ключ

диван, стул ... 10-й ключ

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#3

Читаем файл в массив.

$array[rand(0,N-1)] - так 10 раз

$string = implode(',', $array);

В итоге получаем $string="ключ1,ключ2,...,ключ10";

Подпись))
4arger
На сайте с 17.12.2008
Offline
95
#4

<?php 


function randstr(array $keys) {
shuffle($keys);
$result = array();
for ($i = 0; $i < 10; $i++) {
$result[] = trim($keys[$i]);
}
return implode(', ', $result);
}

$filename = 'keys.txt';
if (!is_file($filename)) {
exit('file not found');
}
$keys = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
if (!$keys) {
exit('file is empty');
}
$keys = array_unique($keys);

$sql = sprintf("UPDATE `tab` SET `keys` = '%s'", randstr($keys));

echo $sql;
m0le[x]
На сайте с 08.03.2009
Offline
102
#5

Огромное спасибо 4arger и Милованов Ю.С за помощь, очень помогли!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий