Перейти к содержанию
Форум поддержки пользователей VamShop

update db


Рекомендуемые сообщения

<?php
  mysql_connect('localhost', 'root', '');
  mysql_select_db('tpedb');
 
  $products = mysql_query('SELECT * FROM products AS p
                                        LEFT JOIN products_description AS p_desc
                                          ON (p.products_id = p_desc.products_id)');

  $categories = mysql_query('SELECT * FROM categories AS c
                                          LEFT JOIN categories_description AS c_desc
                                            ON (c.categories_id = c_desc.categories_id)');
                                     
  while ($products_row = mysql_fetch_array($products, MYSQL_ASSOC)) {
      $products_row['products_page_url'] = $products_row['products_name'].'.html';
      $products_row['products_page_url'] = str_replace(' ', '-', $products_row['products_page_url']);
     
      echo $products_row['products_id'].'-> '.$products_row['products_name'].'; '.$products_row['products_price'].'; '.$products_row['products_page_url'].";<br />";
     
      mysql_query("UPDATE products AS p
                          SET p.products_page_url = '".$products_row['products_page_url']
                          ."' WHERE p.products_id = '".$products_row['products_id'])."'";
  }
 
  $result = mysql_query('SELECT * FROM products');
  while ($products_row = mysql_fetch_array($result, MYSQL_ASSOC)) {
      echo $products_row['products_id'].'-> '.$products_row['products_page_url'].";<br />";
  }
?>[/code]

что сдесь не так как сделать update  ??? после выполнения запроса products_page_url всеравно = ''

Ссылка на сообщение
Поделиться на другие сайты

Если решён, на всякий пожарный поправь код на правильный в первом сообщение.

Если кто в будущем будет читать, что б тоже на грабли не наступили.

Ссылка на сообщение
Поделиться на другие сайты

<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('tpedb');

$products = mysql_query('SELECT * FROM products AS p
LEFT JOIN products_description AS p_desc
ON (p.products_id = p_desc.products_id)');

  $categories = mysql_query('SELECT * FROM categories AS c
LEFT JOIN categories_description AS c_desc
ON (c.categories_id = c_desc.categories_id)');

while ($products_row = mysql_fetch_array($products, MYSQL_ASSOC)) {
$products_row['products_page_url'] = $products_row['products_name'].'.html';
$products_row['products_page_url'] = str_replace(' ', '-', $products_row['products_page_url']);

echo $products_row['products_id'].'-> '.$products_row['products_name'].'; '.$products_row['products_price'].'; '.$products_row['products_page_url'].";<br />";

mysql_query("UPDATE products AS p
SET p.products_page_url = '".$products_row['products_page_url']
."' WHERE p.products_id = '".$products_row['products_id'])."'";
}

$result = mysql_query('SELECT * FROM products');
while ($products_row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo $products_row['products_id'].'-> '.$products_row['products_page_url'].";<br />";
}
?>
[/code]

Ссылка на сообщение
Поделиться на другие сайты

Необходимо добавить фильтрацию "плохих" символов. И перекодировку в транслит (хотя правильнее сделать это опционально).

Кроме того, неплохо-бы проверять url на уникальность - иначе можно нарваться.

На самом деле это должно выглядеть примерно так:

<?php
/* -----------------------------------------------------------------------------------------
   $Id: seo_url_gen.php 1.2 01.12.2008 18:02 Andrew Berezin eCommerce-Service.com $

   VaM Shop - open source ecommerce solution
   http://vamshop.ru
   http://vamshop.com

   Copyright (c) 2008 VaM Shop
   -----------------------------------------------------------------------------------------
   based on:
   (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
   (c) 2002-2003 osCommerce(specials.php,v 1.47 2003/05/27); www.oscommerce.com
   (c) 2003 nextcommerce (specials.php,v 1.12 2003/08/17); www.nextcommerce.org
   (c) 2004 xt:Commerce (specials.php,v 1.12 2003/08/17); xt-commerce.com

   Released under the GNU General Public License
   ---------------------------------------------------------------------------------------*/

require_once('includes/application_top.php');
require_once(DIR_FS_INC . 'vam_cleanName.inc.php');

$products_query = vam_db_query("SELECT p.products_id, pd.products_name
                                FROM " . TABLE_PRODUCTS . " p
                                  LEFT JOIN " . TABLE_PRODUCTS_DESCRIPTION . " pd ON (p.products_id = pd.products_id)
                                WHERE pd.language_id='" . (int)$_SESSION['languages_id'] . "'
                                  AND p.products_page_url=''");

while ($products = vam_db_fetch_array($products_query)) {
  $products_page_url_name = $products['products_name'];
  $products_page_url_name = vam_cleanName($products_page_url_name);
  $i=0;
  do {
    $products_page_url = $products_page_url_name . '.html';
    $check_query = vam_db_query("SELECT COUNT(*) AS total
                                  FROM " . TABLE_PRODUCTS . " p
                                    LEFT JOIN " . TABLE_CATEGORIES . " c ON (p.products_page_url=c.categories_url)
                                    LEFT JOIN " . TABLE_CONTENT_MANAGER . " cm ON (p.products_page_url=cm.content_page_url)
                                    LEFT JOIN " . TABLE_ARTICLES . " a ON (p.products_page_url=a.articles_page_url)
                                    LEFT JOIN " . TABLE_TOPICS . " t ON (p.products_page_url=t.topics_page_url)
                                    LEFT JOIN " . TABLE_LATEST_NEWS . " ln ON (p.products_page_url=ln.news_page_url)
                                  WHERE p.products_page_url='" . vam_db_input($products_page_url) . "'");
    $check = vam_db_fetch_array($check_query);
    if ($i == 0) {
      $products_page_url_name .= '-p-' . $products['products_id'];
    } else {
      $products_page_url_name .= '-' . $i;
    }
    $i++;
  } while ($check['total'] > 0);
  echo '#' . $products['products_id'] . ' ' . $products['products_name'] . ' => ' . $products_page_url . "<br />";
  vam_db_query("UPDATE " . TABLE_PRODUCTS . "
                SET products_page_url = '" . vam_db_input($products_page_url) . "'
                WHERE products_id = '" . (int)$products['products_id'] . "'");
}

include ('includes/application_bottom.php');[/code]

Ссылка на сообщение
Поделиться на другие сайты

Не знаю, попробуй.

Я б лучше записал mobile_phones_nokia-6300.html или mobile_phones-nokia-6300.html

Не знаю как воспримет / код модуля, может удалит, может нормально будет, попробуй.

Ссылка на сообщение
Поделиться на другие сайты

Да, наверное скрипту не нравится символ /

А поисковику ведь всё равно: так mobile_phones/nokia-6300.html или так: mobile_phones_nokia-6300.html

Ссылка на сообщение
Поделиться на другие сайты

А поисковику ведь всё равно: так mobile_phones/nokia-6300.html или так: mobile_phones_nokia-6300.html

Маааленькое замечание. Не совсем по теме, но рядом.

Google "-" разделяет слова. Т.е. mobile_phones_nokia - 1 слово, mobile-phones-nokia - 3.

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...