Как извлечь конкретную ячейку (столбец ячеек) из mysql, сделать на ней «что-то» и сохранить в том же месте? - PullRequest
0 голосов
/ 24 июня 2011

У меня есть форум phpbb 3.0.5 (с использованием php и mysql).
Я хотел бы извлечь из базы данных только ячейки "themes" и "posts" и перевести контент с помощью Google Translate, а затем сохранить (переписать)переведенный контент в том же месте в базе данных.Можно ли это сделать?

Если нет, подскажите, как экспортировать только определенное содержимое таблицы?

Пример ниже:

1 2 3 4 5 6
a b c d e f 
g h i j k l

Я хочу экспортировать толькостолбец 5 со всеми значениями (e, k, ...) без особых тегов sql - только текст.

Пожалуйста, помогите.Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 24 июня 2011

Чтобы выбрать один столбец, вы делаете следующее:

SELECT columnName FROM tableName

Затем вы манипулируете данными по мере необходимости и сохраняете их:

$query = mysql_query("SELECT id,columnName FROM tableName"); // You need ID field for reference
while($row = mysql_fetch_assoc($query) {
   $field = $row["columnName"];
   // Do Something with the Field Data
   // ...
   // ...

   // Update the Table with new values
   $update = "UPDATE tableName SET columnName = '".$field."' WHERE id = '".$row['id']."'");
   mysql_query($update); // This update the field with what you set in "$field"
}

// УЗНАТЬ БОЛЬШЕ:

ВЫБРАТЬ Синтаксис

ОБНОВИТЬ Синтаксис

0 голосов
/ 24 июня 2011

Для конкретной руды: 1. запустить соединение с базой данных. 2. получить всю информацию из таблицы, используя запрос, который я указывал ранее:

$sql = "SELECT `id`, `column_name` FROM `table_name` ";

Чтобы выполнить этот запрос, сделайте что-то вроде:

  $query_results = $database_connection->query($sql);//this will run the query and get all the results, check to make sure it all worked:
 if(!$query_results){
 echo "There was a problem: ".$db_connection->error;
} else { 
//the query worked so this is what we do
//get the number of results
$result_number = $query_results->num_rows;//the number of results
$result_info = $query_results->fetch_assoc();//getting the information from the first result
//looping through:
for($i = 0; $i < $result_number; $i++){
$value_to_convert = $result_info['needed_column'];
//do what ever you want to the value_to_convert - also - needed_column is the name of the column you need.
//insert the new value back into the database:
$sql = "UPDATE `database_name`.`table_name` SET `column` = 'new translated content\' WHERE ``table_nane`.`id` = the_proper_id;";
//run it:
$update_query = $db_connection->query($sql);
//check like before
if(!$update_query){


 echo "There was a problem updating: ".$db_connection->error
} 
//get the next result:
$result_info = $query_results->fetch_assoc();//getting the information from the first result
}
}
0 голосов
/ 24 июня 2011

Вы можете выполнить следующий запрос к рассматриваемой таблице, чтобы получить только необходимый столбец:

$sql = "SELECT `id`, `column_name` FROM `table_name` LIMIT 0, 30 ";

Это даст вам запрошенный столбец - из всего содержимого таблицы.затем вы можете просмотреть результаты, преобразовать их и снова вставить их в базу данных с помощью этого запроса:

$sql = "UPDATE `database_name`.`table_name` SET `column` = 'new translated content\' WHERE `table_nane`.`id` = the_proper_id;";

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

...