Forum Webscript.Ru

Программирование => PHP => Тема начата: xax от 30 Января 2004, 00:00:27

Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 00:00:27
Я вообще php учу 3 день! И мне нужна помощь! Я никак не могу понять, а можно ли сделать так, чтобы информация из базы данныx выводилась по названию (Новости на а на странице, где все новости на а)! Вот только база данных у меня - это текстовый файлик...
Вот код, возможно, есть глупости, но я только начинаю учить и хочу научиться..
   $file="news/news.txt";
  $arr=file($file);
  for ($i=0;$i<=count($arr)-1;$i++) {
   $str=explode(";",$arr[$i]);
   $menu.="$str[0]
";
   $time = Date("h:i:M:d:y");
  }
  echo $menu;
  echo $time;
 ?>
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 00:25:04
интересно у тебя выводятся новости - показывая время показа.
Это так и задумано? :-)

Этот код ты сам писал, если чего в него добавлять - сам сообразишь - куда?
тебе нужно отрезать первую букву от заголовка новости и сравнить ее с буквой, которую показывает данный скрипт.

отрезает функция [p]substr[/p]

Ну, и страницу с алфавитом тебе тоже надо будет иметь
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 00:31:26
Вот в этом и фишка, что я уже 3 день не могу сообразить! Код я писал с небольшой помощью (Про строчки и столбцы)
Куда, что добавить - это смотря, что и куда! Щас на сайтик забегу!
Я лол вчера весь день на функцию sort убил!
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 00:43:52
А как сделать, чтобы был список из букв и там выводились новости на эти буквы ( ну текст из букв a,b я научился, вроде, последовательно, выставлять)
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 00:53:39
вопросы на форуме надо задавать не торопясь.
Если, конечно, тебе ответ нужен.

как сделать список из букв? циклом от а до я. под каждой буквой - ссылка с этой буквой.

а что значит "и там выводились новости" - я не понял

Судя по твоим описаниям задачи, ты третий день не можешь сообразить КАК сделать потому, что не очень хорошо представляешь себе, ЧТО ты хочешь сделать.
какие страницы, какие ссылки, что они должны выводить.
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 00:58:19
Вобщем из быза бруться заголовки новостей и сортируются: все новости с заголовком на а выводятся на странице под названием а итд!
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 01:08:18
Значит так.
До тебя не доходит.

поэтому.
или ты задаешь вопросы нормально - "как мне сделать то-то".
или не задаешь вовсе.
Придумывать твою программу за тебя никто не будет.

Если ты сам не потрудился задуматься над своей проблемой так, чтобы описать ее не в двух бессвязных строчках, то здесь никто за тебя задумываться не будет.
И отгадывать, что ты имеешь в виду под словами "ну там" "берутся" "выводятся".

Конкретные вопросы еще есть?
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 01:31:21
Да, как создать массив?
Я создал код, как понял, но мне выдаёт ошибку на 14 строке
  $file="news/news.txt";
 $arr=file($file);
 foreach ($arr as $a=>$b) {
  $now=explode(";", $arr[$a]);
  $news[$a]=$now[1];
 }
 foreach ($news as $a=>$b) {
  $first=$news[$a]{0};
  $first=strtolower($first);
   if ($first=="$word") {
    $file="news/news.txt";
    $arr=file($file);
    $str=arr[$a];
    $str_arr=explode(";", $str);
    echo "

$str_arr[0]";
    echo "

$str_arr[1]";
    echo "

$str_arr[2]";
   }
 }
 ?>

Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 01:51:41
если тебе "дает ошибку", то надо на форум скопировать ее текст и строку, в которой дает.

Цитировать
xax:
как создать массив?

нет ничего проще
$a=array();
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 01:59:09
Ошибка: Parse error: parse error, unexpected \'[\' in E:\\Program Files\\Apache Group\\Apache2\\Index\\Hi1\\sort.php on line 14
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 02:09:38
у тебя в 14 строке ошибка синтсксиса.
перепиши, чтобы было правильно
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 03:26:25
Исправил на
$str="arr[$a]"
Теперь в 15 строчке ошибка!
Parse error: parse error in /home/z/zqzq.h11.ru/WWW/Hi1/sort.php on line 15
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 03:58:03
Спасибо я всё сделал!
Вот только новый вопрос, а как теперь сделать,. чтобы в списке нововстей на а были новости по алфавиту?
Название: Вывод по алфавиту
Отправлено: professorX от 30 Января 2004, 09:54:43
Цитировать
xax:
а как теперь сделать,. чтобы в списке нововстей на а были новости по алфавиту?


отсортировать по заголовку новости.
У тебя список новостей - это массив? Если да, то и отсортируй его, как тебе хочется.
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 17:47:35
А какой оператор сортирует, если можешь то покажи, как отсортировать по алфавиту (База данных текстовый файл, второй столбик - название новости)
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 18:20:28
Это очень сложно сделать?
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 18:25:21
сортирует "по второму столбику" функция [p]usort[/p]
там есть пример.

и забудь ты про свою дурацкую "базу данных"!

Нету у тебя никакой базы.
у тебя есть ФАЙЛ, который ты построчно читываешь в МАССИВ.

Вот с МАССИВОМ ты и работаешь.
Название: Вывод по алфавиту
Отправлено: xax от 30 Января 2004, 19:24:32
Как сдлелать, так, чтобы  $a[] = new TestObj("Сюда"); можно было вставить $menu; если    $menu.="$str[0]
";
Если можешь, то просто напиши, что нужно добавить
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 30 Января 2004, 19:52:35
не могу.
я не понимаю, что это за абракадабра.
ты опять вернулся к своему телеграфному стилю.
Не можешь толком объяснить вопрос - вообще здесь ничего не пиши
Название: Вывод по алфавиту
Отправлено: xax от 31 Января 2004, 00:16:39
Как сделать так, чтобы $a[] = new TestObj("!-----Сюда------!"); можно было вставить $menu; или любой другой оператор (Когда он, что - нибудь выдаёт в echo)
Сорри если не могу объянить лучше, но яплохо знаю теремены!
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 31 Января 2004, 09:31:05
что такое
$a[] = new TestObj("!-----Сюда------!");
и откуда оно взялось?

Если сократить твое первое предложение, то получится
"Как сделать так, чтобы $a можно было вставить $menu"
Что во что вставить?
в меню вставлять - точно так же, как и все остальное - точкой.
оператор точка (.) в пхп соединяет строки.
вот и соединяй в любом месте.
Название: Вывод по алфавиту
Отправлено: xax от 31 Января 2004, 17:34:47
Спасибо попробую!
Взялось
class TestObj {
   var $name;

   function TestObj($name)
   {
       $this->name = $name;
   }

   /* This is the static comparing function: */
   function cmp_obj($a, $b)
   {
       $al = strtolower($a->name);
       $bl = strtolower($b->name);
       if ($al == $bl) {
           return 0;
       }
       return ($al > $bl) ? +1 : -1;
   }
}

$a[] = new TestObj("c");
$a[] = new TestObj("b");
$a[] = new TestObj("d");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
   echo $item->name . "\\n";
}
?>
Я не знаю, как сделать так, чтобы переменная  $menu.="$str[0]
";
а как сделать так, чтобы $menu можно было вставить вот так  и не выдавало ошибки $a[] = new TestObj("$menu");
Название: Вывод по алфавиту
Отправлено: xax от 01 Февраля 2004, 02:51:45
Помогите!
Я код написал, он выводит всё по алфавиту, вроде - но странно
Вот код:
class TestObj {
   var $name;

   function TestObj($name)
   {
       $this->name = $name;
   }

   /* This is the static comparing function: */
   function cmp_obj($a, $b)
   {
       $al = strtolower($a->name);
       $bl = strtolower($b->name);
       if ($al == $bl) {
           return 0;
       }
       return ($al > $bl) ? +1 : -1;
   }
}
  $file="news/news.txt";
  $arr=file($file);
  for ($i=0;$i<=count($arr)-1;$i++) {
   $str=explode(";",$arr[$i]);
$menu.="$str[0]
";
$a[] = new TestObj("$menu");

usort($a, array("TestObj", "cmp_obj"));

foreach ($a as $item) {
   echo $item->name . "\\n";
}
}
?>
В массиве вот так вот
a;1;1
b;1;1
c;1;1
Сортируется всё по 1 столбцу
А выводит мне
a
a
a
b
a
a
b
a
b
c
В чём ошибка?
Название: Вывод по алфавиту
Отправлено: Neter от 01 Февраля 2004, 03:32:56
Клиника.. В мозах ошибка..
Купи книжку и прочитай!
Рома, я я тебе удивляюсь зачем ты тратишь своё время на школьников которым трудно попросить у мамы 200 рублей и купить книжку по ПХП, и перестать задавать тупые вопросы.
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 01 Февраля 2004, 10:41:42
xax
попробуй, вместо всей этой лабуды, в которой ты все равно ни бельмеса не понимаешь, использовать функцию sort
она тебе явно подойдет лучше
Название: Вывод по алфавиту
Отправлено: professorX от 02 Февраля 2004, 09:31:20
xax
http://phpclub.net/manrus/ - читай - там есть описание всех функций, которые тебе понадобятся (для работы с массивами смотри array-функции). И будет тебе счастье!
Название: Вывод по алфавиту
Отправлено: Меняздесьдавнонет от 02 Февраля 2004, 11:09:01
xax
я решил тебе сопли повытирать.
предоставь мне пример своего текстового файла, три строчки.
реальные три строчки, а не того, что ты тут навыдумывал.
чтобы именно по второй "колонке" надо было сортировать, а не по первой.