Создание php запроса

Статус
В этой теме нельзя размещать новые ответы.

Saamuel

Создатель
Регистрация
14 Май 2008
Сообщения
27
Реакции
1
В общем ситуация такая. Есть сайт, на нем новости новости хранятся в базе mysql.

Сама структура таблицы в которой хранятся новости:

CREATE TABLE `Newses` (
`ID` int(10) unsigned NOT NULL auto_increment,
`NewsID` int(10) unsigned default NULL,
`Name` varchar(250) NOT NULL default '',
`PubTime` datetime default NULL,
`Author` varchar(250) NOT NULL default '',
`Sdesc` text NOT NULL,
`Text` mediumtext NOT NULL,
`Priority` int(11) NOT NULL default '0',
`TinyPhoto` varchar(5) default '',
`TinyPhoto_w` mediumint(9) NOT NULL default '0',
`TinyPhoto_h` mediumint(9) NOT NULL default '0',
`SmallPhoto` varchar(5) default '',
`SmallPhoto_w` mediumint(9) NOT NULL default '0',
`SmallPhoto_h` mediumint(9) NOT NULL default '0',
`MediumPhoto` varchar(5) default '',
`MediumPhoto_w` mediumint(9) NOT NULL default '0',
`MediumPhoto_h` mediumint(9) NOT NULL default '0',
`Photo` varchar(5) default '',
`Photo_w` mediumint(9) NOT NULL default '0',
`Photo_h` mediumint(9) NOT NULL default '0',
`Mark` enum('Y','N') NOT NULL default 'N',
`Sent` enum('Y','N') NOT NULL default 'N',
`LangID` int(10) unsigned NOT NULL default '1',
`IsForAll` enum('Y','N') NOT NULL default 'N',
`SmallestPhoto` varchar(5) default '',
`SmallestPhoto_w` mediumint(9) NOT NULL default '0',
`SmallestPhoto_h` mediumint(9) NOT NULL default '0',
`Urgent` enum('Y','N') NOT NULL default 'N',
PRIMARY KEY (`ID`),
KEY `News_k_2` (`PubTime`),
KEY `News_k_3` (`Mark`),
KEY `News_k_4` (`Sent`,`PubTime`),
KEY `News_k_5` (`LangID`,`NewsID`),
KEY `NewsID` (`NewsID`),
KEY `LangID` (`LangID`),
KEY `News_k_6` (`Urgent`,`PubTime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=59070 ;

Необходимо создать php скрипт который будет вытаскивать новости из этой таблицы и сможет отображать эти новости в DLE.

Кто сможет помочь с этим, пожалуйста откликнитесь.
 
Тебе отдельный скрипт нужен или как модуль к dle ?

если отдельный тогда примерно так
PHP:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SELECT NewsID, Name, PubTime, Author, Sdesc, Text FROM Newses ORDER BY PubTime DESC LIMIT 5');
while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}
mysql_close($link);
?>
 
Тебе отдельный скрипт нужен или как модуль к dle ?
если отдельный тогда примерно так
PHP:
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SELECT NewsID, Name, PubTime, Author, Sdesc, Text FROM Newses ORDER BY PubTime DESC LIMIT 5');
while ($row = mysql_fetch_assoc($result)) {
    print_r($row);
}
mysql_close($link);
?>

А как он подключается к базе, как я понял тут прописанно просто подключение к mysql. Таблица Newses находится в базе site.

А если был бы как модуль к DLE было бы вообще круто. Сайт в последнее время стал очень тормозить. В процессах постоянно Copying to tmp table. Спецы сказали что неправильно написан запрос. Вот и хотим переехать на DLE.
 
PHP:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_select_db ('site');
...

А если был бы как модуль к DLE было бы вообще круто.

Боюсь такого тебе никто не даст, либо искать аналогичные публичные хаки, либо заказывать за деньги.
 
Боюсь такого тебе никто не даст, либо искать аналогичные публичные хаки, либо заказывать за деньги.

Согласен за деньги. Cам сайт был самописный, может просто получится конвертонуть имеющуюся базу под формат DLE?

Добавлено через 3 минуты
PHP:
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
mysql_select_db ('site');
...

Класс, заработало. Не сочтите за наглость, а можно как нить по красивее сделать вывод новостей. Сейчас новости отоброжаются вот так Для просмотра ссылки Войди или Зарегистрируйся
 
Класс, заработало. Не сочтите за наглость, а можно как нить по красивее сделать вывод новостей. Сейчас новости отоброжаются вот так Для просмотра ссылки Войди или Зарегистрируйся
А как надо чтобы отображалось?


Замени print_r($row);

на

echo($row['Name']); и т.д. шаблон html сам придумай или свистни у кого-нить

Конвернуть будет гораздо легче,быстрее и дешевле чем писать сторонний скрипт или модуль.
Для начала определись, какие поля тебе нужны из твоей базы:
  1. `Name` название статьи
  2. `Sdesc` мелкое описание
  3. `Text` полная статья

Это я так предположил что можно выдернуть ,т.к. я не в курсе за что отвечают другие поля. Картинки, превьюшки оформляешь в html код.

PHP:
mysql_query("INSERT INTO " . PREFIX . "_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, tags) values ('".date ('Y-m-d H:i:s');."', 'Admin', '$Sdesc', '$Text', '', '$Name', '', '1', '$Name', '1', '1', '1', '')");

это запрос создает пост в дле.

Общий принцип работы скрипта будет такой (даю только алгоритм, код не проверяю)

PHP:
<?php 
$user = 'admin'; // юзер из под которого будут запощены статьи
$prefix = 'dle'; // префикс базы
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
mysql_select_db ('site');
$result = mysql_query('SELECT Name, Sdesc, Text FROM Newses ORDER BY PubTime DESC LIMIT 5'); 
while ($row = mysql_fetch_assoc($result)) { 
    $title_article = $row['Name'];
    $desc_article  = $row['Sdesc'];
    $text_article  = $row['Text'];


    mysql_query("INSERT INTO ".$prefix."_post (date, autor, short_story, full_story, xfields, title, keywords, category, alt_name, allow_comm, approve, allow_main, tags) values ('".date ('Y-m-d H:i:s')."', '".$user."', '".$desc_article."', '".$text_article."', '', '".$title_article."', '', '1', '".$title_article."', '1', '1', '1', '')");
}
mysql_close($link); 
?>
 
Уважаемые, помогите с шаблоном, скиньте пример. Я новичок, поэтому прошу снисхождения.
 
А можно просто написать конвертер базы из вашей в dle!
 
  • Заблокирован
  • #9
врятли получится
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху