php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 10:39 |
сабжик::::
Код: |
$file = file_get_contents("./template/main.html");
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
$ss = $file;
while($al = mysql_fetch_array($result)){
$ss = str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])),$ss);
}
echo $ss;
|
В шаблоне Код: | <a href="zakoni_{id}.html">{name}</a> |
Проблема в том что выводится только ОДИН пост,
здесь все извлекается но вот выводит только одно, вроде бы понимаю почему но не могу догнать как вывести все???
Всем ответившим по делу максимальный рейтинг.
|
|
|
|
Гражданин планеты Земля
С нами с 30.03.03
Сообщения: 7217
Рейтинг: 2185
|
Добавлено: 11/04/08 в 10:44 |
так попробуй... точечка перед равно.
Код: | while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])),$ss);
} |
Последний раз редактировалось: wMaster (11/04/08 в 10:45), всего редактировалось 1 раз
|
|
|
|
С нами с 27.06.07
Сообщения: 289
Рейтинг: 247
|
Добавлено: 11/04/08 в 10:44 |
echo занеси внутрь фигурной скобки
|
|
|
|
Гражданин планеты Земля
С нами с 30.03.03
Сообщения: 7217
Рейтинг: 2185
|
Добавлено: 11/04/08 в 10:49 |
У тебя здесь еще один косяк, ты $ss присваиваешь шаблон перед циклом.
И этой строкой ты его перезаписываешь в первом же цикле.
$ss = str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])),$ss);
так нужно
Код: |
$file = file_get_contents("./template/main.html");
$ss = '';
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
echo $ss;
|
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 10:52 |
если echo поставить в цикле то выводятся все новости НО каждая новость в отдельной шаблоне, 5 новостей и 5 шабонов на странице одна под другой. если использоваться конкатенацию то вапще беда получаится
терь вот так код исправил:
Код: |
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss = str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])),$file);
}
echo $ss;
|
опять выводит одну новость, но тока последнию
|
|
|
|
Гражданин планеты Земля
С нами с 30.03.03
Сообщения: 7217
Рейтинг: 2185
|
Добавлено: 11/04/08 в 10:56 |
Поставь сейчас точку перед равно, я привел выше корректный код.
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 10:59 |
wMaster с точкой ситуация такая:
1
3
происходит наложение шаблонов
|
|
|
|
Гражданин планеты Земля
С нами с 30.03.03
Сообщения: 7217
Рейтинг: 2185
|
Добавлено: 11/04/08 в 11:07 |
ты в точности сделал как ниже?
Код: | $file = file_get_contents("./template/main.html");
$ss = '';
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
echo $ss; |
код верен, не знаю тогда в чем может быть еще дело.
|
|
|
|
С нами с 27.06.07
Сообщения: 289
Рейтинг: 247
|
Добавлено: 11/04/08 в 11:07 |
тс, я сказал тебе верный вариант по коду, если что-то не так с отображением, то это уже вопросы к реализации шаблона, в студию его, чтоли
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 11:10 |
Код: |
$file = file_get_contents("./template/main.html");
$ss = '';
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
echo $ss;
|
теперь вот так, каждая новость в отдельном шаблоне.
ну вот конструкция, которая в шаблоне:
Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong> |
Teacher-X точка перед равно или echo за циклом это одно и тоже
|
|
|
|
С нами с 27.06.07
Сообщения: 289
Рейтинг: 247
|
Добавлено: 11/04/08 в 11:18 |
_s_[sov] писал: | Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong> |
Teacher-X точка перед равно или echo за циклом это одно и тоже |
да ладно?
по сабжу: убери из шаблона <strong></strong> и сделай так:
Код: |
echo '<strong>';
$file = file_get_contents("./template/main.html");
$ss = '';
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
echo $ss;
}
echo '</strong>';
|
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 11/04/08 в 11:47 |
Если шаблон состоит из одной строки
Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong> |
то тут правильно написали, нужна конкатенация.
Если шаблон состоит из нескольких схожих строк:
Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong>
<strong><a href="zakoni_{id}.html">{name}</a></strong>
<strong><a href="zakoni_{id}.html">{name}</a></strong>
<strong><a href="zakoni_{id}.html">{name}</a></strong> |
то str_replace заменяет все {id} и {name} каждый раз, а не по очереди в каждой строке, поэтому и выводится только последний пост.
Покажи полностью шаблон, собака точно там зарыта! :-)
|
|
Power of the lime madness...
|
1
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 11:56 |
Код: |
$ss = "";
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$ss1 = str_replace("{id}", html_entity_decode($al['id']), $file);
$ss1 = str_replace("{name}", html_entity_decode($al['name']), $ss1);
$ss.=$ss1;
}
echo $ss;
|
но это тоже выводит каждую новость в отдельном шаблоне.
Причем тут шаблон?
Ну вот он
Код: |
<p align="justify">
<strong><a href="zakoni_{id}.html">{name}</a></strong>
</p>
|
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 11/04/08 в 12:17 |
_s_[sov]:
C шаблоном теперь понятно, просто чтобы знать все известные/неизвестные уравнения.
Цитата: | но это тоже выводит каждую новость в отдельном шаблоне. |
Т.е., ты хочешь чтобы было примерно так в результате, насколько я понял?
Код: | <p align="justify">
<strong><a href="zakoni_1.html">Name 1</a></strong>
<strong><a href="zakoni_2.html">Name 2</a></strong>
<strong><a href="zakoni_3.html">Name 3</a></strong>
</p> |
А шаблон был в одном файле. Если так, то шаблон придётся изменить вот таким образом:
Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong> |
А в пыхе вот так:
Код: | $file = file_get_contents("./template/main.html");
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
$ss = '<p align="justify">';
while($al = mysql_fetch_array($result))
{
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
$ss .= '</p>';
echo $ss; |
|
|
Power of the lime madness...
|
1
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 12:27 |
Этот вариант выводит все в разных шаблонах. Я переделал, получилось вот что
Код: |
$ss = ""; $textLnk = "";$textLnk2 = "";
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
while($al = mysql_fetch_array($result)){
$textLnk.=html_entity_decode($al['id']);
$textLnk2.=html_entity_decode($al['name']);
$textLnk2.="<br>";
}
$ss = str_replace("{id}", $textLnk, $file);
$ss = str_replace("{name}", $textLnk2, $ss);
echo $ss;
|
эта беда выводит все в 1 шаблоне, но трабла, все новости под одной линкой и ссылка вида:
http://www.sat.com/zakoni_13.html
вместо
http://www.sat.com/zakoni_1.html
http://www.sat.com/zakoni_3.html
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 11/04/08 в 12:39 |
Цитата: | эта беда выводит все в 1 шаблоне, но трабла, все новости под одной линкой и ссылка вида |
Ты в $textLnk забиваешь все айдиншники в цикле, в $textLnk2 все тайлы и потом делаешь 1 замену всего и получается что строка
Код: | <strong><a href="zakoni_{id}.html">{name}</a></strong> |
превращается в:
Код: | <strong><a href="zakoni_123.html">Name1Name2Name3</a></strong> |
Я выше вариант написал, чем он не подходит-то? Про результат я правильно понял, нужно чтобы было так?
Код: | <p align="justify">
<strong><a href="zakoni_1.html">Name 1</a></strong>
<strong><a href="zakoni_2.html">Name 2</a></strong>
<strong><a href="zakoni_3.html">Name 3</a></strong>
</p> |
|
|
Power of the lime madness...
|
1
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 12:42 |
да, так. пойду пробовать твой вариант, а то я уже через регулярки стал ссылки делить
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 11/04/08 в 12:48 |
_s_[sov]:
Попробуй ещё шаблонизаторы, есть довольно лёгкие, простые и удобные, вроде Phemplate или Xtemplate, есть понавороченнее, например известный Smarty. Штука дико удобная и полезная - PHP код не смешивается с HTML, каждую часть можно править отдельно друг от друга, очень просто интегрируется (в твоём случае даже шаблон почти менять не придётся). И не будет возникать такой путаницы с кодом, логика будет простая и прочная!
|
|
Power of the lime madness...
|
1
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 12:55 |
я щас до того досижу что инсталирую смарти, Corex твой вариант выводит все в разных шаблонах.
|
|
|
|
« ... full on ... »
С нами с 17.03.07
Сообщения: 670
Рейтинг: 1686
|
Добавлено: 11/04/08 в 13:03 |
Эт как в разных шаблонах, несколько <p>? У меня всё в одном выводит, точнее сказать результат такой, как я написал.
В шаблоне код тоже нужно же заменить, вынести параграф за шаблон.
Вот этот вариант (вместо шаблона сразу его содержимое, чтобы всё однозначно было) 100% работает как нужно:
Код: | $file = '<strong><a href="zakoni_{id}.html">{name}</a></strong>';
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
$ss = '<p align="justify">';
while($al = mysql_fetch_array($result))
{
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
$ss .= '</p>';
echo $ss; |
|
|
Power of the lime madness...
|
2
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 13:14 |
Код: |
$ss= "";
$result = mysql_query("SELECT id,name FROM `content` WHERE type=1");
$ss = '<p align="justify">';
while($al = mysql_fetch_array($result)){
$ss .= str_replace(array("{id}","{name}"), array(html_entity_decode($al['id']), html_entity_decode($al['name'])), $file);
}
$ss .= '</p>';
echo $ss;
|
после "сборки" страницы параграфы вапще не выводятся и даже в коде нет ((
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 11/04/08 в 13:26 |
ладно, нефиг чудо изобретать, щас на смарти все по быру сделаю. Спасибо всем ответившим, плюсики паставил!
|
|
|
|