|
|
|
| Добрый день!
Вывожу комментарии из bd1
<?php
include ("blocks/bd1.php");
$result = mysql_query("SELECT * FROM comment1 ORDER BY date DESC LIMIT 5", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
printf("<a href='post1.php?id_ccuz=%s'> %s %s</a>",$post,$author,$text);
}
while ($comment = mysql_fetch_array($result));
}
?>
|
Как тут же выводить комменты из баз bd2,...,bd5 ?
Структура таблиц для комментов идентичная.
Отличается лишь подключение к БД
include ("blocks/bd1.php");... include ("blocks/bd5.php");
|
и ссылки
<a href='post1.php?id_ccuz=%s'>... <a href='post5.php?id_ccuz=%s'>
|
| |
|
|
|
|
|
|
|
для: liberty
(05.02.2013 в 07:51)
| | Для начала надо избавится от видеокурса Е Попова и купить нормальную книгу для изучения основ.
Расскажите почему у вас существуют bd2,...,bd5 ? | |
|
|
|
|
|
|
|
для: Valick
(05.02.2013 в 10:20)
| | Приведи пожалуйста пример таких книг....... Просто все книги, которые видел лично я, это всего лишь куча словесного мусора......Но если ты знаешь о книгах, которые действительно полезны то пожалуйста укажи, хотя бы название... Мы будем очень признательны...... | |
|
|
|
|
|
|
|
|
для: Valick
(08.02.2013 в 00:48)
| | вау... как много.... огромное спс...... Надеюсь, они окажутся полезными...... | |
|
|
|
|
|
|
|
для: Valick
(08.02.2013 в 00:48)
| | дааа... здесь офигительное чтиво( видно по оглавлениям)....... и все книги от "Кузнецов и Симдянов"..... | |
|
|
|
|
|
|
|
для: Valick
(05.02.2013 в 10:20)
| | что же это за чудо такое? жуть как интересно!
можно линку на видео, где рассказывается про 600 таблиц? | |
|
|
|
|
|
|
|
для: liberty
(05.02.2013 в 07:51)
| | Идентификатор $db у вас зачем? (в mysql_query) | |
|
|
|
|
|
|
|
для: CrazyAngel
(05.02.2013 в 14:45)
| | > Расскажите почему у вас существуют bd2,...,bd5 ?
bd2,...,bd5 существуют.
ну не могу же я загнать 600 таблиц в одну базу данных.
Вероятно могу, но будет не удобно.
>Идентификатор $db у вас зачем? (в mysql_query)
честно говоря, не знаю.
знания php еще те.
но тем не менее этот скрипт работает.
P.S. Да, купил хорошую книгу по PHP.
Но надо время чтобы постичь, а помощь нужна сейчас ))) | |
|
|
|
|
|
|
|
для: liberty
(05.02.2013 в 15:20)
| | Это идентификатор базы данных. Соответственно его имя надо изменить в файлах подключения | |
|
|
|
|
|
|
|
для: CrazyAngel
(05.02.2013 в 14:45)
| | чтобы делать запросы к разным базам данных, естественно | |
|
|
|
|
|
|
|
для: psychomc
(05.02.2013 в 15:57)
| | я видимо не понятно выразил свою мысль.
так будет лучше.
надо объединить и вывести комменты из разных БД в одном блоге с сортировкой по дате.
<?php
include ("blocks/bd1.php");
$result = mysql_query("SELECT * FROM comment1 ORDER BY date DESC LIMIT 5", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
printf("<a href='post1.php?id1=%s'> %s %s</a>",$post,$author,$text);
}
while ($comment = mysql_fetch_array($result));
}
?>
|
<?php
include ("blocks/bd2.php");
$result = mysql_query("SELECT * FROM comment2 ORDER BY date DESC LIMIT 5", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
printf("<a href='post2.php?id2=%s'> %s %s</a>",$post,$author,$text);
}
while ($comment = mysql_fetch_array($result));
}
?>
|
таблицы идентичны по структуре. | |
|
|
|
|
|
|
|
для: liberty
(06.02.2013 в 03:53)
| | Тогда предварительно собрать все данные со всех бд в 1 массив и перед выводом отсортировать его.
P.S. E вас точно разные БД, а не просто разные таблицы?) | |
|
|
|
|
|
|
|
для: CrazyAngel
(06.02.2013 в 05:23)
| | да точно. у меня разные БД.
Как сделать запрос для массива? | |
|
|
|
|
|
|
|
для: liberty
(06.02.2013 в 07:15)
| | навскидку:
<?
$arr = array();
for ($i=1; $i<=5; $i++)
{
include ("blocks/bd$i.php");
$result = mysql_query("SELECT * FROM comment$i LIMIT 5", $db);
while ($comment = mysql_fetch_array($result))
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
$date = $comment["date"]
$arr[$date] = sprintf("<a href='post%d.php?id%d=%s'> %s %s</a>",$i,$i,$post,$author,$text);
}
mysql_close($db) ;
}
krsort($arr);
foreach ($arr as $date => $link) {
echo "$date - $link<br>";
}
|
PS если у вас бд на одном сервере крутятся, то необязательно новое подключение создавать, достаточно заюзать другую бд: "USE bd2;" | |
|
|
|
|
|
|
|
для: Igorek
(06.02.2013 в 07:57)
| | спасибо.
я вам в качества примера привел эти базы данных bd1...bd5
фактически вместо цифр там буквы.
и здесь вместо цифр post1...post5 тоже буквы.
comment1 - вместо цифр тоже буквы.
Сорри. | |
|
|
|
|
|
|
|
для: liberty
(06.02.2013 в 08:08)
| | создайте массив настроек подключений, как-то так:
<?
$conns = array(
0 => array(
'host' => 'host1',
'db' => 'bd1',
'user' => 'user1',
'pass' => 'pass1',
'table' => 'table1',
'post' => 'post1'
),
1 => array(
'host' => 'host2',
'db' => 'bd2',
'user' => 'user2',
'pass' => 'pass2',
'table' => 'table2',
'post' => 'post2'
),
...
)
foreach ($conns as $conn) {
$db = mysql_connect($conn['host'], $conn['user'], $conn['pass']);
...
}
|
| |
|
|
|
|
|
|
|
для: liberty
(06.02.2013 в 08:08)
| | ну не могу же я загнать 600 таблиц в одну базу данных.
почему у вас 600 таблиц? это многовато для блога
чем вы руководствовались при создании таблиц?
создаются ли у вас таблицы автоматически в процессе работы скрипта? | |
|
|
|
|
|
|
|
для: Valick
(06.02.2013 в 09:13)
| | IMHO, 600 таблиц создать в одной БД не проблема, а здесь речь идет о горизонтальном шардинге, раз пришлось комменты размазывать по нескольким БД, но тогда их (комментов) должно быть очень много, иначе такой подход только оверхед с геморром принесет)) | |
|
|
|
|
|
|
|
для: liberty
(06.02.2013 в 03:53)
| | а может лучше сделать по-человечески, т.е слить все комментарии в одну БД и работать уже с ней. или они на разных серверах находятся? | |
|
|
|
|
|
|
|
для: liberty
(05.02.2013 в 07:51)
| | проблема решается , ели использовать не MySQL, а PDO...Подробнее здесь http://docs.php.net/mysqli.overview.php, И ЗДЕСЬ http://docs.php.net/manual/ru/book.pdo.php | |
|
|
|
|
|
|
|
для: CodeEater
(08.02.2013 в 00:34)
| | проблема решается , ели использовать не MySQL, а PDO
PDO - это всего лишь прослойка между РНР и MySQL(или другой СУРБД)
и уж неоправданное количество баз данных проблему никак не решает
в принципе и проблемы то не было-бы если бы ее не создавали
проблема в видимокурсах Е. Попова, оттуда и растут ноги этих 600 таблиц с множеством БД | |
|
|
|
|
|
|
|
для: Valick
(08.02.2013 в 00:39)
| | Согласен, у этого Попова все очень поверхностно.... А вы по книгам обучались, или.....? Если да, то укажите хотя-бы одну.... | |
|
|
|
|
|
|
|
для: CodeEater
(08.02.2013 в 00:49)
| | кроме книг авторов этого форума, у меня много и забугорных авторов, но они еще не распакованы после переезда. | |
|
|
|
|
|
|
|
для: Valick
(08.02.2013 в 00:39)
| | ......хотя есть видеокурс от Науменко Д. - PHP и CodeIgniter с нуля 2010...... Но чтобы его пройти, нужно запастись RED BULLом.... иначе человек просто заснет..... | |
|
|
|
|
|
|
|
для: CodeEater
(08.02.2013 в 00:58)
| | да можно слить все в одну базу. но мороки сколько?
вот как у меня сейчас работает.
выводятся комменты с разных БД.
<!--Вывод comments--><?php
include ("blocks/bd.php");
$result = mysql_query("SELECT * FROM comment_ege ORDER BY date DESC LIMIT 3", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
/
// далее сокращаем коммент до 75 символов
if (strlen($text) > 75 ) {
$text = substr($text, 0, 75).'...';
}
printf("<a href='view_post_ege.php?id=%s'><div class='comment-content2'>
<h6>%s</h6>
<p>%s</p></a>
</div>
",$post,$author,$text);
}
while ($comment = mysql_fetch_array($result));
}
// выводим комменты из другой базы данных
include ("blocks/bd_ccuz.php");
$result = mysql_query("SELECT * FROM comment_ccuz ORDER BY date DESC LIMIT 2", $db);
if(mysql_num_rows($result) > 0)
{
$comment = mysql_fetch_array($result);
do
{
$author = $comment["author"];
$post = $comment["post"];
$text = $comment["text"];
if (strlen($text) > 75 ) {
$text = substr($text, 0, 75).'...';
}
printf("<a href='post_ccuz.php?id_ccuz=%s'><div class='comment-content2'>
<h6>%s</h6>
<p>%s</p></a>
</div>
",$post,$author,$text);
}
while ($comment = mysql_fetch_array($result));
}
?>
|
все работает. осталось их тока соединить и выводить по очередности согласно дате. | |
|
|
|
|
|
|
|
для: liberty
(10.02.2013 в 06:56)
| | просто нет слов...
думаю хостер убьет ваш сайт без объяснения причин | |
|
|
|
|
|
|
|
для: Valick
(10.02.2013 в 07:26)
| | Valick я обратил на Вас внимание, на Ваши посты.
Спасибо за замечание, но могли бы Вы быть ответить по существу вопроса и не отсылать, как часто вы делаете, к учебнику по PHP? | |
|
|
|
|
|
|
|
для: liberty
(10.02.2013 в 08:39)
| | А как я вам отвечу по существу, если все что вы написали в корне неправильно и это неправильно началось еще на уровне проектировки БД
Совет купить хорошую книгу при данном раскладе это все что я могу.
Вы написали, что уже купили книгу. Напишите название и авторов. | |
|
|
|
|
|
|
|
для: Valick
(10.02.2013 в 09:06)
| | Head first PHP & MySQL - автор Lynn Beighley | |
|
|
|
|
|
|
|
для: liberty
(10.02.2013 в 06:56)
| | Обычно не используют два вызова функции (это не профессионально)
<?php
$comment = mysql_fetch_array($result);
do
{
...
}
while ($comment = mysql_fetch_array($result));
?>
| если можно обойтись одним
<?php
while ($comment = mysql_fetch_array($result));
{
...
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(10.02.2013 в 09:08)
| | Игорь Вячеславович, вызов функции это мелочь по сравнению со всем остальным. | |
|
|
|