WebCreativo

Рейтинг
10
Регистрация
26.07.2013
SSL-Decision:
<?php   

//Подключаемся к базе с логином и паролем, принудительно задаем кодировку операций.
$db = mysql_connect ("localhost","user","password");
mysql_query('SET character_set_database = utf8');
mysql_query('SET NAMES utf8');
mysql_select_db ("data_base",$db) or die("Database Error: ".mysql_error());
//Предполагается, что файл strings.txt, который надо разобрать, лежит в той же папке, что и скрипт.
$fp = fopen("test.txt", "r");
// Открываем файл в режиме чтения
$id = 0;
if ($fp)
{
while (!feof($fp))
{ //Считываем файл построчно в переменную stringtext
$stringtext = fgets($fp);
if (!empty($stringtext ))
{
$id++;
//Если строка считалась, заносим ее в базу. Первый параметр NULL, так как база берет на себя его заполнение с последовательным увеличением.
$query = 'UPDATE countries SET text = "'.mysql_escape_string($stringtext).'" WHERE id = ' . $id;
mysql_query($query) or die(mysql_error());
}
}
}
else echo "Ошибка при открытии файла";
fclose($fp);
?>


---------- Добавлено 22.07.2014 в 14:11 ----------

Ошибся немного.
"WHERE id =" надо поменять на "WHERE country_id ="

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

SSL-Decision:
Структуру таблицы покажите. И еще - первая строка в файле - это описание к первой (id = 1) стране в базе?

country_id - 1

country_ru - Австралия

name_en - Australia

code - AU

text - пусто

title - пусто

SSL-Decision:
Не хватает условия.
То есть

$query = 'UPDATE countries SET text = "' . mysql_escape_string($stringtext) . '" WHERE .... ';

А вот что за условие - нужно смотреть. Возможно порядковый номер строки равен id в таблице.

А как сделать условие, чтобы раскидать строки из файла по строкам из базы например с 1 по 200 id по порядку

Присущ:
Я не знаю название бренда (что именно у вас). Например: "Самарское заречье" или "Заречье". Если "Пупкин и компания друзей", само всплывет без усилий.

Соц факторы это не конкретно твитер или другая соц сеть в отдельности. Чтоб ответить надо анализировать тематику в привязке к конкретному сайту.

Понял, еще раз спасибо за полезный совет

Присущ:
WebCreativo, По названию сайта если он есть бренд, то вывести не сложно, и не важен возраст, необходима только региональность и соц факторы + микро разметка.

Дельный совет, а скажите разве региональность в данном случае будет иметь вес, запрос ведь получается брендовый? И какие по вашему мнению соц факторы наиболее продуктивны(Твиттер)?

Лучше слитно, зону РФ не берите.

amerika:
Рано ему еще по вч двигаться, хотя почву подготовить можно. Какая тематика хоть?

Туризм, дело в том что у сайта такое же название как и у уже существующей компании на этом рынке, а по названию компании делают ткчу запросов, вот заказчик и хочет вывести его первоначально в топ именно под название своего сайта и компании-бренда на которую запросы идут

---------- Добавлено 24.05.2014 в 19:22 ----------

Я вот правда не знаю на сколько это реально..

siv1987:
А мы вам, простите, как должны помочь?.. Мало ли вы что там в htaccess добавляете. А может и не htaccess дело а в неправильных путях к стилям.

Пути правильные так как только отключаю htaccess, стили работают.

Ну может кто сталкивался с подобным и может подсказать как решить эту проблему

Options +FollowSymLinks

RewriteEngine On

RewriteRule ^([a-zA-Z0-9]+)/$ index.php?view=$1 [L]

RewriteRule ^([a-zA-Z0-9]+)/?$ index.php?view=country&id=$1 [L]

RewriteRule ^([^/]*)/([^/]*)$ /index.php?view=$1&id=$2 [L]

RewriteRule ^hotels_([^/]*)$ index.php?view=h_country&id=$1 [L]

RewriteRule ^city/([^/]*)$ index.php?view=city_2&id=$1 [L]

Здесь мне кажется проблема в том, что массив почему то пустой приходит

WebCreativo:
<?php

/*-----------------Подключение к базе данных----------------*/
function db_connect()
{
$host='localhost'; // имя хоста (уточняется у провайдера)
$database='data'; // имя базы данных, которую вы должны создать
$user='user'; // заданное вами имя пользователя, либо определенное провайдером
$pswd='123456'; // заданный вами пароль

$connection = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_query("SET NAMES utf8");
mysql_select_db($database) or die("Не могу подключиться к базе.");

return $connection;
}


/*-----------------////////////////////////----------------*/
/*-----------------Вывод стран на страницу страны----------------*/
function db_result_to_array($result)
{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array[$count] = $row;

$count++;
}

return $res_array;
}


function get_countries()
{
db_connect();

$query = "SELECT * FROM countries";

$result = mysql_query($query);

$result = db_result_to_array($result);

return $result;
}

/*-----------------////////////////////////----------------*/

/*-----------------Вывод страны на страницу страны----------------*/

function get_country($id)
{
db_connect();

/* $query = ("SELECT * FROM countries WHERE iso='$id' "); */
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

/*-----------------////////////////////////----------------------*/

/*-----------------Вывод городов на страницу страны----------------*/
function get_city($id)
{
db_connect();

$query = ("SELECT * FROM cities WHERE name='$id' ");

$result = mysql_query($query);

$row = mysql_fetch_array($result);

return $row;

}

?>

Поля и параметр cities

id iso local_name type in_location geo_lat geo_lng db_id

1 AD Andorra CO NULL 42.50000000000 1.50000000000 AD

Поля и параметр countries

d iso local_name type in_location geo_lat geo_lng db_id

1 AD Andorra CO NULL 42.50000000000 1.50000000000 AD

---------- Добавлено 31.12.2013 в 04:07 ----------

bay_ebook:
ну как минимум заменяем это на

  function get_country($id)

{
db_connect();
$query = ("SELECT c.iso AS iso, c.local_name AS local_name, ci.name AS name FROM countries AS c LEFT JOIN cities AS ci ON c.iso=ci.iso WHERE c.iso='$id' ");

$result = mysql_query($query);

$row = db_result_to_array($result);

return $row;

}


а вот это
function db_result_to_array($result) 

{
$res_array = array();

$count = 0;

while($row = mysql_fetch_array($result))
{
$res_array***91;$count***93; = $row;

$count++;
}

return $res_array;
}
на

function db_result_to_array($result) 

{
$res_array = array();

$count = 0;

while($row = mysql_fetch_assoc($result))
{
$res_array[$count]= $row;

$count++;
}

return $res_array;
}

Сейчас заработало к странице страны делается выборка с ее городами. Большое вам спасибо за помощь.

Но теперь почему то перестало выводить параметры самой страны ее название <h1><?php echo $country['local_name']?></h1>

---------- Добавлено 31.12.2013 в 04:47 ----------

Еще раз спасибо за помощь, все заработало.

12
Всего: 14