IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Динамические ссылки на ПХП (http://www.imho.ws/showthread.php?t=35171)

$pher@ 25.07.2003 11:21

Динамические ссылки на ПХП
 
Такая вот задача:

на главной странице появляется текст ( случайный ) но так как он достаточно большой то надо чтобы появилась кнопка "далее" и этой ссылке дмнамически ( есть ПХП) создавалась страница с продолжением этого же текста.

sanchos 25.07.2003 11:40

значит загоняешь весь текс в массив... вот накидал, короче, посмотри. Если что непонятно, то спрашивай :)
PHP код:

// $text - твой текст ввиде массива
if(empty(!$from)) $from 0// с какой страницы показать текст (первая имеет нулевой индекс)
$strings_onpage 10// количество строк на странице
if(count($text) < (($from 1)*$strings_onpage) - 1$to count($text) - 1;
else 
$to = ($from 1)*$strings_onpage 1;
for(
$strCount $from*$strings_onpage$strCount <= (($from 1)*$strings_onpage 1); $str_count++){
    echo 
$text[$strCount];
    }
if(
count($text) > (($from 1)*$strings_onpage) - 1)){
   echo 
"<A href='text.php?from=" $from "'>далее</A>";
   } 


medved2002 25.07.2003 12:54

массивы памяти много жрут.... по моим личным наблюдениям... могу ошибаться.

sanchos 25.07.2003 12:58

Наверное, да... ведь, как она говорит, что текста много :(
Значит просто сделать чтение нужных строк fgets'ом. Думаю быстрее будет :)

$pher@ 26.07.2003 05:10

SaNChos
Цитата:

Значит просто сделать чтение нужных строк fgets'ом. Думаю быстрее будет :)
это как?

sanchos 26.07.2003 05:40

Может конечно и не fgets'ом делать, но смысл в том, что при каждом открытии страницы нужно хранить не весь текст в массиве (если он большой, то будет жрать много памяти), а читать только енобходимые строки и сразу выводить их :)
Поняла? :) Или код дать?

$pher@ 26.07.2003 06:15

SaNChos

ЛУчше код :-)

sanchos 28.07.2003 09:11

Хорошо. Тога первый вопрос: как ты получаешь информацию, которую надо отобразить? Всмысле читаешь ли ты ее из файла, либо каким-то другим способом?

$pher@ 28.07.2003 12:44

SaNChos
Есть файл с текстовой информацией (примерно 150 кб) нужно выводить блоками в случайном порядке (что-то типа вывода анекдотов: начало...+линк "далее")

Aeon 28.07.2003 12:55

<тихо, в сторону>
а через базу было-бы проще, думается мне...
</тихo>

$pher@ 28.07.2003 13:45

Aeon

да кстати база есть MySQL

sanchos 28.07.2003 15:33

$pher@
Так тебе надо по порядку выводить, либо выборочно? :)

Aeon
<тихо... совсем...>
Думаю, что тоже... да и выборку не так гемморойно делать :)
</тихо>

RaZEr 28.07.2003 22:26

<тихо... совсем...>
А может книжку какую посоветовать ...
</тихо>

Aeon 28.07.2003 23:05

простейший вариант с базой:
Код:

mysql
CREATE TABLE snippets (id SMALLINT NOT NULL DEFAULT '0' AUTO_INCREMENT, txt TEXT, PRIMARY KEY id);

текст загоняется в эту таблицу, вручную или автоматом, неважно. Показываем:
PHP код:

// ------------------------------- //
// list.php
// случайный список пяти первых строк.
// ------------------------------- //
$sql 'SELECT id, LEFT(txt,79) FROM snippets ORDER BY RAND() LIMIT 5'
// выбираем id и первые 79 букв текста из случайных пяти строк.
$result mysql_query($sql) or die(mysql_error());
while(
$row AS mysql_fetch_row($result))
{
     
// если хочется, потом можно добавить функции чтобы обрезать
     // текст по последней точке или пробелу, чтобы избежать обрыва
     // в середине слова. Но сейчас лень.
     
echo $row[1].'... <a href="detail.php?id='.$row[0].'">далее</a>';
}

// ------------------------------- //
// detail.php
// показываем весь текст.
// ------------------------------- //
$sql "SELECT txt FROM snippets WHERE id='{$_GET['id']}'";
$result mysql_query($sql) or die(mysql_error());
$text mysql_result($result0);
echo 
$text


$pher@ 29.07.2003 04:38

SaNChos

выборочно, в случайном порядке

Aeon
Цитата:

code:--------------------------------------------------------------------------------
mysql
CREATE TABLE snippets (id SMALLINT NOT NULL DEFAULT '0' AUTO_INCREMENT, txt TEXT, PRIMARY KEY id);
а с этим что делать?

Aeon 29.07.2003 06:21

$pher@
это синтакс команыд для создания простой таблицы для этих твоих текстов в базе. Как создавать таблицы я надеюсь ты знаешь?

sanchos 29.07.2003 09:22

Aeon
Думаю, что придется писать и как таблицу создавать и как туда текст запихивать 6)

Aeon 29.07.2003 09:30

SaNChos
*тяжело вздыхает*

sanchos 29.07.2003 10:57

RaZEr
Может дейсвительно дашь девушке пару ссылочек? :)

$pher@ 30.07.2003 04:45

SaNChos

Да уж, наверное я непонимаю многого в пхп, давайте еще раз по порядку с начала:
1...
2...
3...и т.д.

Aeon 30.07.2003 05:52

$pher@
погоди, погоди, в смысле, ещё раз? чем тебе не нравится моё решение проблемы?

$pher@ 30.07.2003 06:06

Aeon

решение нравится..но я не знаю в каком порядке все это делать....в смысле с MySQL

Aeon 30.07.2003 06:20

$pher@
так. хватит. Дальше я за тебя писать не буду. Могу лишь дать подсказку. Вот тебе упражнение на дом - напиши скрипт который прочтёт твой текст-файл с отрывками текста и запихнёт их в базу данных. Думаю ты можешь это сделать используя лишь эти функции php: fopen(), fread(), fclose(), mysql_connect(), mysql_query(), mysql_close(). Вот документация по PHP, вот документация по MySQL. Если что непонятно, спрашивай конкретные вопросы - не «как написать скрипт который прочитает файл» а скорее «Как разбить построчно массив полученный из файла при помощи fread() - я пробовала так, так и этак, и это дало такой, такой и этакий результаты которые мне не подходят потому что...». Задача ясна?

$pher@ 30.07.2003 07:03

Aeon

а Вы случайно не преподаватель :-)))

$pher@ 30.07.2003 07:11

Aeon

Прошу прошения если достала своими "почему, зачем и как"

Aeon 30.07.2003 07:22

$pher@
да нет, я уж скорее студент чем преподаватель. а насчёт «почему, зачем и как» - достают не сами вопросы а то как они ставятся и что делается с ответами. Чтобы программировать нужно прежде всего логически выстроить задачу перед самим собой у себя в голове - претворение задачи в синтакс того или другого языка уже дело вторичное. Писать тебе код я конечно могу хоть до скончания века, но что с этого толку если ты не можешь сама построить задачу и разобраться как к ней подойти? А если задача поставлена и ты пробуешь один, другой, третий, nый варианты, горазде чаще чем нет вопрос отпадает сам собой, ответ становится очевиден. А если не отпадает, значит это стоящий вопрос который можно задать - и другим гораздо легче на него ответить если они видят что ты уже пробовала это, это и то, и оно тебе дало такие-то результаты - ведь, возможно для того чтобы твоё решение заработало нужно откорректировать одну или две строки, вместо того чтобы писать всё с нуля. Но когда человек просто сидит сложа лапки и ждёт пока ему дадут готовое решение, ему помогут раз, другой, третий может быть, а потом просто станут игнорировать. Вот и всё.

RaZEr 30.07.2003 09:06

2 SaNChos:
Цитата:

Может дейсвительно дашь девушке пару ссылочек? :)
А сам ?

2 Aeon: ФАК будет или порешили на создании подфорума ?

sanchos 30.07.2003 09:08

$pher@
На самом деле вопросы не достали, протсо задавай конкретнее :) А не так - нужно это, дайте код :)

Aeon
Респект, голос твой :)

Aeon 30.07.2003 11:32

RaZEr
делай подраздел, я для ЧАВО инфу собираю потихоньку.

SaNChos
спасибо, тебе того же :yees:

sanchos 30.07.2003 11:46

RaZEr, Aeon
А для чего подраздел? Или как он будет называться? :/
Имхо, лучше фак сделать.

RaZEr 30.07.2003 11:59

Уже все решили. Будет и то и то ... все довольные разошлись ...

Stasik 30.07.2003 20:10

факи не чтиают

RaZEr 30.07.2003 20:24

Есть такое, ... об этом говорили в теме по поводу создания подфорума, сошлись на том, что все-таки стоит.

sanchos 01.08.2003 09:02

Stasik
Не знаю, не знаю... Иногда факи бывают очень полезными... Я в фидошке их всегда читал: там можно иногда найти не только то, что тебе нужно, но и еще чего-нибудь полезное :)


Часовой пояс GMT +4, время: 11:25.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.