jano

Рейтинг
169
Регистрация
06.07.2011

Мужики, подскажите пожалуйста плагин видео плеера, который оптимизирован и под мобильные приложения тоже. Задрался просто, перепробовал кучу плееров, везде плеер не оптимизирован под мобильные устройства.

Dark_hawK:
$result = $conn->query($sql2); замени на

$r = $conn->query($sql2); // все теперь уж точно не на что ругаться :)

Огромное спасибо за помощь!! Есть ещё отзывчивые люди у нас! ;) :)

Всё работает, как часики. Базу из 1,2m десков апдейтнуло за минут 5.

Dark_hawK:
что то ты там напутал походу выкладывай полностью что у тебя там


<?php

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);
$servername = "localhost";
$username = "base";
$password = "base";
$dbname = "base";

$words = file('key.txt'); // читаем слова в массив построчно

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, title FROM w_content where id != ''"; // вытаскиваем из таблицы данные, тут лучше использовать LIMIT
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
#var_dump($row['title']);
$new_title = '';
$rand_keyword = array_rand($words); // вытащили случайное слово из файла
# $new_title = $row['title'] . " " . $rand_keyword; // добавили случайное слово к title
$new_title = $row['title'] . ' ' . $words[$rand_keyword];
#var_dump($new_title);
$sql2 = "UPDATE w_content SET title= '".$new_title."' WHERE id = '".$row['id']."'"; // обновили значение в базе
$result = $conn->query($sql2); // вот про это забыл, мой косяк
}

$conn->close();

?>

Dark_hawK:
отлично сейчас все заработает :) добавляем после
$sql2 = "UPDATE w_content SET title= '".$new_title."' WHERE id = '".$row['id']."'";
$result = $conn->query($sql2); // вот про это забыл, мой косяк

теперь все будет ок

Сейчас ругается на 20 строчку:

Fatal error: Call to a member function fetch_assoc() on a non-object in /usr/my/s1.php on line 20

Dark_hawK:
тогда убираем все var_dump`ы ... и эту строчку

$new_title = $row***91;'title'***93; . " " . $rand_keyword;

заменяем на
$new_title = $row['title'] . ' ' . $words[$rand_keyword];
var_dump($new_title); // должен выводить сгененренный тайтл

результаты в студию :)

Да, сейчас вывело новые дески в логах, но на сайте ничего не поменялось.

Dark_hawK:
тогда после строчки
$new_title = $row['title'] . " " . $rand_keyword; // добавили случайное слово к title
var_dump($new_title); // должен вывестись новый тайтл с подставленным словом ...

смотрим что показывает, сорри конешно 🙄 но я думаю ты вводишь свои
$username = "user";
$password = "pass";
$dbname = "dbname";

🍿

Да, данныне свои ввожу конечно :)

Сейчас почему-то выводит копии, лог в два раза стал больше и копии такого плана (именно вконце копий цифра)

string(67) "the bautifull world"

string(67) "the bautifull world 29032"

string(169) "The most popular"

string(169) "The most popular 1843"

string(33) "Moscow is the capital"

string(33) "Moscow is the capital 23423"

Dark_hawK:
а что возвращает пхп май админ при запросе SELECT id, title FROM w_content ?

Ничего не происходит - пустой файл.

Dark_hawK:
можно попробовать тогда добавить SELECT id, title FROM w_content where id != ''

после строчки while($row = $result->fetch_assoc()) { добавить var_dump($row['title']); и запустить ... должен выводиться title из базы

да, в логах выводится список, но кей не подставляется (

string(67) "the bautifull world"

string(169) "The most popular"

string(33) "Moscow is the capital"

и т д

Dark_hawK:
ps ну и раз уж такое дело в начало самое добавьте
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);


<?php

error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set('display_errors',1);
$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "dbname";

$words = file('key.txt'); // читаем слова в массив построчно

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, title FROM w_content where id != ''"; // вытаскиваем из таблицы данные, тут лучше использовать LIMIT
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
var_dump($row['title']);
$new_title = '';
$rand_keyword = array_rand($words); // вытащили случайное слово из файла
$new_title = $row['title'] . " " . $rand_keyword; // добавили случайное слово к title
$sql2 = "UPDATE w_content SET title= '".$new_title."' WHERE id = '".$row['id']."'"; // обновили значение в базе
}

$conn->close();

?>

Вот код после нововедений.

Думаю нужно подправить строку апдейта в базе, только не получается:

$sql2 = "UPDATE w_content SET title= '".$new_title."' WHERE id = '".$row['id']."'"; // обновили значение в базе

Dark_hawK:
ну я ж незнаю какие у тебя там поля точно есть, какие ты указал я с такими и написал :)

ps. какой лог ? от чего там что то должно быть ?

Скрипт запускал таким запросом: php -q s1.php < /dev/null > script1.log

Если была ошибка, то писался лог. :)

Таблица w_content далее поле desc, потом уже в нём идёт title, который нужно править.

---------- Post added 11-11-2014 at 20:18 ----------

jano:
Скрипт запускал таким запросом: php -q s1.php < /dev/null > script1.log
Если была ошибка, то писался лог. :)

Таблица w_content далее поле desc, потом уже в нём идёт title, который нужно править.

Вот скриншот:

Dark_hawK:
Вот бро ... это минимальный вариант вроде того что ты хотел сделать, как я понял из поста

<?php


$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$words = file('key_file.txt'); // читаем слова в массив построчно

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, title FROM w_content"; // вытаскиваем из таблицы данные, тут лучше использовать LIMIT
$result = $conn->query($sql);
while($row = $result->fetch_assoc()) {
$new_title = '';
$rand_keyword = array_rand($words); // вытащили случайное слово из файла
$new_title = $row[title'] . " " . $rand_keyword; // добавили случайное слово к title
$sql2 = "UPDATE w_content SET title= '".$new_title."' WHERE id = '".$row['id']."'"; // обновили значение в базе
}

$conn->close();

?>

ps. редактор почему то заметил [] на ***91; и ***93;
pps. имей ввиду, наколенках набросал, для начала лучше сделать бэкап базы, используй на свой страх и риск, и если база большая скорее всего памяти не хватит, по этому лучше использовать LIMIT

Большое спасибо, но скрипт ругнулся на строчку:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ']' in /usr/my/s1.php on line 21

---------- Post added 11-11-2014 at 19:11 ----------

Скрипт сейчас отрабатывает, но ничего не меняет. Лог полностью пустой.

---------- Post added 11-11-2014 at 19:41 ----------

Косяк в этой строчке:

$sql = "SELECT id, title FROM w_content";

В таблице: w_content есть куча полей, вот в этих полях есть поля title

Нужно как-то массово прописать запрос, что бы все поля в таблице w_content пошли в обработку.

Спасибо за ответы.

Нашёл скрипт, который меняет одно значение на другое. Кто-нибудь сможет помочь что бы замена была из файла к примеру key.txt, подставлялся в случайном порядке один из кейвордов.

<?php

// Written by Mark Jackson @ MJDIGITAL

// http://www.mjdigital.co.uk/blog

// Ищем...

$search = 'ЧТО_НУЖНО_ЗАМЕНИТЬ'; // Например: 'www.old-site.ru'

// Меняем на... Используется при $queryType = 'replace'

$replace = 'НА_ЧТО_ЗАМЕНЯЕМ'; // Например: 'www.new-site.ru'

// Настройки базы данных

$hostname = "localhost";

$database = "ИМЯ_БАЗЫ_ДАННЫХ";

$username = "ИМЯ_ПОЛЬЗОВАТЕЛЯ_БАЗЫ_ДАННЫХ";

$password = "ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_БАЗЫ_ДАННЫХ";

// Варианты значения переменной $queryType 'search' (вывод результатов поиска) или 'replace' (поиск с заменой)

$queryType = 'replace';

// Показывать ошибки или нет (true/false)

$showErrors = true;

//////////////////////////////////////////////////////

//

// Код ниже не редактировать

//

//////////////////////////////////////////////////////

if($showErrors) {

error_reporting(E_ALL);

ini_set('error_reporting', E_ALL);

ini_set('display_errors',1);

}

$MJCONN = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);

mysql_select_db($database,$MJCONN);

$table_sql = 'SHOW TABLES';

$table_q = mysql_query($table_sql,$MJCONN) or die("Cannot Query DB: ".mysql_error());

$tables_r = mysql_fetch_assoc($table_q);

$tables = array();

do{

$tables[] = $tables_r['Tables_in_'.strtolower($database)];

}while($tables_r = mysql_fetch_assoc($table_q));

$use_sql = array();

$rowHeading = ($queryType=='replace') ?

'Replacing \''.$search.'\' with \''.$replace.'\' in \''.$database."'\n\nSTATUS | ROWS AFFECTED | TABLE/FIELD (+ERROR)\n"

: 'Searching for \''.$search.'\' in \''.$database."'\n\nSTATUS | ROWS CONTAINING | TABLE/FIELD (+ERROR)\n";

$output = $rowHeading;

$summary = '';

foreach($tables as $table) {

$field_sql = 'SHOW FIELDS FROM '.$table;

$field_q = mysql_query($field_sql,$MJCONN);

$field_r = mysql_fetch_assoc($field_q);

do {

$field = $field_r['Field'];

$type = $field_r['Type'];

switch(true) {

case stristr(strtolower($type),'char'): $typeOK = true; break;

case stristr(strtolower($type),'text'): $typeOK = true; break;

case stristr(strtolower($type),'blob'): $typeOK = true; break;

case stristr(strtolower($field_r['Key']),'pri'): $typeOK = false; break;

default: $typeOK = false; break;

}

if($typeOK) {

$handle = $table.'_'.$field;

if($queryType=='replace') {

$sql[$handle]['sql'] = 'UPDATE '.$table.' SET '.$field.' = REPLACE('.$field.',\''.$search.'\',\''.$replace.'\')';

} else {

$sql[$handle]['sql'] = 'SELECT * FROM '.$table.' WHERE '.$field.' REGEXP(\''.$search.'\')';

}

$error = false;

$query = @mysql_query($sql[$handle]['sql'],$MJCONN) or $error = mysql_error();

$row_count = @mysql_affected_rows() or $row_count = 0;

$sql[$handle]['result'] = $query;

$sql[$handle]['affected'] = $row_count;

$sql[$handle]['error'] = $error;

$output .= ($query) ? 'OK ' : '-- ';

$output .= ($row_count>0) ? '<strong>'.$row_count.'</strong> ' : '<span style="color:#CCC">'.$row_count.'</span> ';

$fieldName = '`'.$table.'`.`'.$field.'`';

$output .= $fieldName;

$erTab = str_repeat(' ', (60-strlen($fieldName)) );

$output .= ($error) ? $erTab.'(ERROR: '.$error.')' : '';

$output .= "\n";

}

}while($field_r = mysql_fetch_assoc($field_q));

}

echo '<pre>';

echo $output."\n";

echo '<pre>';

?>

Всего: 424