[php] $link = mysql_connect("localhost", "admin", "89091790608");
if(!$link) {echo "bad connect";}
mysql_select_db("furgan");
$result = mysql_query("SELECT DISTINCT t3.ENTERPRISE
FROM ENTERP__RUBRIKA AS t1, PARTITION__RUBRIKA AS t2, ENTERPRISE AS t3
WHERE t1.RUBRIKA_ID = t2.RUBRIKA_ID
AND t1.ENTERPRISE_ID = t3.ENTERPRISE_ID
AND t2.PARTITION_ID =9484");
if(!result) {echo "very bad";}
while ($row = mysql_fetch_array($result)){
// Construct the new node object.
$node = new stdClass();
// Your script will probably pull this information from a database.
$node->title = echo ".$row[ENTERPRISE].";
$node->body = "The body of my imported node.\n\nAdditional Information";
$node->type = 'story'; // Your specified content type
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 1; // Filtered HTML
$node->uid = 1; // UID of content owner
$node->language = 'en';
// If known, the taxonomy TID values can be added as an array.
$node->taxonomy = array(2,3,1,);
node_save($node);
}
mysql_close($link);
пишет ошибка вот здесь $node->title = echo ".$row[ENTERPRISE].";
Помогите пожалуйста - а то уже голову сломал
select работает (то есть извлекает нормальна) Что я делаю не так . Заране спасибо огромное если кто поможет
Спустя 16 минут, 46 секунд (15.01.2009 - 17:33) sergeiss написал(а):
Цитата (cmdhitman @ 15.01.2009 - 17:16) |
пишет ошибка вот здесь $node->title = echo ".$row[ENTERPRISE]."; |
Оставь только вот это:
$node->title = $row[ENTERPRISE];
Правда, я не понял, что такое ENTERPRISE - это константа некая или что? Вообще, тут должно быть имя поля из таблицы, к тому же, его (скорее всего, если это буквенный индекс) надо будет заключить в кавычки.
Спустя 11 минут, 59 секунд (15.01.2009 - 17:45) cmdhitman написал(а):
Спасибо, что откликнулись - но проблема ещё пока не решена - стало всё хорошо работать - но $node->title = $row['ENTERPRISE']; заносит в базу пустое значение - xnj делать - не знаю. Остальные значения заносит нормально - может проблема в кодировке - это две разные базы данных. Подскажите пожалуйста
Спустя 13 минут, 17 секунд (15.01.2009 - 17:58) sergeiss написал(а):
$node->title = $row['ENTERPRISE'] ничего не заносит в базу! А наоборот, читает оттуда. Точнее говоря, из таблицы читает.
Другой вопрос: а данные по этому запросу выбираются на самом деле? Это можно проверить с помощью функции mysql_num_rows.
Либо, сделать в каждом цикле контрольную распечатку. Чтобы было видно, чтоже именно было выбрано, и просто убедиться, что вообще что-то было выбрано.
Например, после строки $node->title = $row['ENTERPRISE'];
вставь
echo $row['ENTERPRISE'].'[s]<br>';
и посмотри, будет ли что-нибудь выводиться.
Другой вопрос: а данные по этому запросу выбираются на самом деле? Это можно проверить с помощью функции mysql_num_rows.
Либо, сделать в каждом цикле контрольную распечатку. Чтобы было видно, чтоже именно было выбрано, и просто убедиться, что вообще что-то было выбрано.
Например, после строки $node->title = $row['ENTERPRISE'];
вставь
echo $row['ENTERPRISE'].'[s]<br>';
и посмотри, будет ли что-нибудь выводиться.
Спустя 20 минут, 41 секунда (15.01.2009 - 18:19) cmdhitman написал(а):
Спсиба )) Но опишу всё подробно - 1)делаю запрос к базе
2) Перебираю значения в цикле и присваиваю эти значения $node->title = $row[ENTERPRISE];
3) Затем сохраняю эти значения в другую базу данных
4) echo $row['ENTERPRISE'].'[s]<br>'; Записал - работает - выводит список предприятий
5) В базу заносится Enterprise - название колонки таблицы - что делать я не знаю, а не сами значения echo $row['ENTERPRISE'].'[s]<br>'; которые выводятся на странице. Как их впихнуть в базу ? Этим занимается по-моему функция node_save($node);
2) Перебираю значения в цикле и присваиваю эти значения $node->title = $row[ENTERPRISE];
3) Затем сохраняю эти значения в другую базу данных
4) echo $row['ENTERPRISE'].'[s]<br>'; Записал - работает - выводит список предприятий
5) В базу заносится Enterprise - название колонки таблицы - что делать я не знаю, а не сами значения echo $row['ENTERPRISE'].'[s]<br>'; которые выводятся на странице. Как их впихнуть в базу ? Этим занимается по-моему функция node_save($node);
Спустя 1 час, 53 минуты (15.01.2009 - 20:12) sergeiss написал(а):
Цитата (cmdhitman @ 15.01.2009 - 18:19) |
5) В базу заносится Enterprise - название колонки таблицы - что делать я не знаю, а не сами значения echo $row['ENTERPRISE'].'[s]<br>'; которые выводятся на странице. Как их впихнуть в базу ? Этим занимается по-моему функция node_save($node); |
Вот уж не знаю, чем занимает функция node_save()
Но я знаю точно, что надо дать команду INSERT для ввода новых данных или UPDATE для изменения существующих.
Ищи их и смотри, что вносится в таблицу. И как вносится. Скорее всего, просто неправильные параметры передаются.
Спустя 19 минут, 19 секунд (15.01.2009 - 20:31) cmdhitman написал(а):
Спасиба огромное - буду смотреть
Спустя 2 часа, 36 минут, 52 секунды (15.01.2009 - 23:08) cmdhitman написал(а):
А вот сама злополучная функция
<?php
function node_save(&$node) {
global $user;
$node->is_new = FALSE;
// Apply filters to some default node fields:
if (empty($node->nid)) {
// Insert a new node.
$node->is_new = TRUE;
$node->nid = db_next_id('{node}_nid');
$node->vid = db_next_id('{node_revisions}_vid');
}
else {
// We need to ensure that all node fields are filled.
$node_current = node_load($node->nid);
foreach ($node as $field => $data) {
$node_current->$field = $data;
}
$node = $node_current;
if ($node->revision) {
$node->old_vid = $node->vid;
$node->vid = db_next_id('{node_revisions}_vid');
}
}
// Set some required fields:
if (empty($node->created)) {
$node->created = time();
}
// The changed timestamp is always updated for bookkeeping purposes (revisions, searching, ...)
$node->changed = time();
// Split off revisions data to another structure
$revisions_table_values = array('nid' => $node->nid, 'vid' => $node->vid,
'title' => $node->title, 'body' => $node->body,
'teaser' => $node->teaser, 'timestamp' => $node->changed,
'uid' => $user->uid, 'format' => $node->format);
$revisions_table_types = array('nid' => '%d', 'vid' => '%d',
'title' => "'%s'", 'body' => "'%s'",
'teaser' => "'%s'", 'timestamp' => '%d',
'uid' => '%d', 'format' => '%d');
if (!empty($node->log) || $node->is_new || $node->revision) {
// Only store the log message if there's something to store; this prevents
// existing log messages from being unintentionally overwritten by a blank
// message. A new revision will have an empty log message (or $node->log).
$revisions_table_values['log'] = $node->log;
$revisions_table_types['log'] = "'%s'";
}
$node_table_values = array('nid' => $node->nid, 'vid' => $node->vid,
'title' => $node->title, 'type' => $node->type, 'uid' => $node->uid,
'status' => $node->status, 'created' => $node->created,
'changed' => $node->changed, 'comment' => $node->comment,
'promote' => $node->promote, 'sticky' => $node->sticky);
$node_table_types = array('nid' => '%d', 'vid' => '%d',
'title' => "'%s'", 'type' => "'%s'", 'uid' => '%d',
'status' => '%d', 'created' => '%d',
'changed' => '%d', 'comment' => '%d',
'promote' => '%d', 'sticky' => '%d');
//Generate the node table query and the
//the node_revisions table query
if ($node->is_new) {
$node_query = 'INSERT INTO {node} ('. implode(', ', array_keys($node_table_types)) .') VALUES ('. implode(', ', $node_table_types) .')';
$revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
}
else {
$arr = array();
foreach ($node_table_types as $key => $value) {
$arr[] = $key .' = '. $value;
}
$node_table_values[] = $node->nid;
$node_query = 'UPDATE {node} SET '. implode(', ', $arr) .' WHERE nid = %d';
if ($node->revision) {
$revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
}
else {
$arr = array();
foreach ($revisions_table_types as $key => $value) {
$arr[] = $key .' = '. $value;
}
$revisions_table_values[] = $node->vid;
$revisions_query = 'UPDATE {node_revisions} SET '. implode(', ', $arr) .' WHERE vid = %d';
}
}
// Insert the node into the database:
db_query($node_query, $node_table_values);
db_query($revisions_query, $revisions_table_values);
// Call the node specific callback (if any):
if ($node->is_new) {
node_invoke($node, 'insert');
node_invoke_nodeapi($node, 'insert');
}
else {
node_invoke($node, 'update');
node_invoke_nodeapi($node, 'update');
}
// Update the node access table for this node.
node_access_acquire_grants($node);
// Clear the cache so an anonymous poster can see the node being added or updated.
cache_clear_all();
}
?>
Ужааассссс !!! Что делать с ней не знаю (((
<?php
function node_save(&$node) {
global $user;
$node->is_new = FALSE;
// Apply filters to some default node fields:
if (empty($node->nid)) {
// Insert a new node.
$node->is_new = TRUE;
$node->nid = db_next_id('{node}_nid');
$node->vid = db_next_id('{node_revisions}_vid');
}
else {
// We need to ensure that all node fields are filled.
$node_current = node_load($node->nid);
foreach ($node as $field => $data) {
$node_current->$field = $data;
}
$node = $node_current;
if ($node->revision) {
$node->old_vid = $node->vid;
$node->vid = db_next_id('{node_revisions}_vid');
}
}
// Set some required fields:
if (empty($node->created)) {
$node->created = time();
}
// The changed timestamp is always updated for bookkeeping purposes (revisions, searching, ...)
$node->changed = time();
// Split off revisions data to another structure
$revisions_table_values = array('nid' => $node->nid, 'vid' => $node->vid,
'title' => $node->title, 'body' => $node->body,
'teaser' => $node->teaser, 'timestamp' => $node->changed,
'uid' => $user->uid, 'format' => $node->format);
$revisions_table_types = array('nid' => '%d', 'vid' => '%d',
'title' => "'%s'", 'body' => "'%s'",
'teaser' => "'%s'", 'timestamp' => '%d',
'uid' => '%d', 'format' => '%d');
if (!empty($node->log) || $node->is_new || $node->revision) {
// Only store the log message if there's something to store; this prevents
// existing log messages from being unintentionally overwritten by a blank
// message. A new revision will have an empty log message (or $node->log).
$revisions_table_values['log'] = $node->log;
$revisions_table_types['log'] = "'%s'";
}
$node_table_values = array('nid' => $node->nid, 'vid' => $node->vid,
'title' => $node->title, 'type' => $node->type, 'uid' => $node->uid,
'status' => $node->status, 'created' => $node->created,
'changed' => $node->changed, 'comment' => $node->comment,
'promote' => $node->promote, 'sticky' => $node->sticky);
$node_table_types = array('nid' => '%d', 'vid' => '%d',
'title' => "'%s'", 'type' => "'%s'", 'uid' => '%d',
'status' => '%d', 'created' => '%d',
'changed' => '%d', 'comment' => '%d',
'promote' => '%d', 'sticky' => '%d');
//Generate the node table query and the
//the node_revisions table query
if ($node->is_new) {
$node_query = 'INSERT INTO {node} ('. implode(', ', array_keys($node_table_types)) .') VALUES ('. implode(', ', $node_table_types) .')';
$revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
}
else {
$arr = array();
foreach ($node_table_types as $key => $value) {
$arr[] = $key .' = '. $value;
}
$node_table_values[] = $node->nid;
$node_query = 'UPDATE {node} SET '. implode(', ', $arr) .' WHERE nid = %d';
if ($node->revision) {
$revisions_query = 'INSERT INTO {node_revisions} ('. implode(', ', array_keys($revisions_table_types)) .') VALUES ('. implode(', ', $revisions_table_types) .')';
}
else {
$arr = array();
foreach ($revisions_table_types as $key => $value) {
$arr[] = $key .' = '. $value;
}
$revisions_table_values[] = $node->vid;
$revisions_query = 'UPDATE {node_revisions} SET '. implode(', ', $arr) .' WHERE vid = %d';
}
}
// Insert the node into the database:
db_query($node_query, $node_table_values);
db_query($revisions_query, $revisions_table_values);
// Call the node specific callback (if any):
if ($node->is_new) {
node_invoke($node, 'insert');
node_invoke_nodeapi($node, 'insert');
}
else {
node_invoke($node, 'update');
node_invoke_nodeapi($node, 'update');
}
// Update the node access table for this node.
node_access_acquire_grants($node);
// Clear the cache so an anonymous poster can see the node being added or updated.
cache_clear_all();
}
?>
Ужааассссс !!! Что делать с ней не знаю (((