Автор Тема: Поможем?  (Прочитано 9214 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Поможем?
« Ответ #15 : 17 Февраля 2004, 19:54:29 »
FreeSpace
все я дам.
а советовать ему изучать SQL - это все равно, что советовать изучать интегралы человеку, не знающему таблицу умножения.
ему все равно, что учить  он пока не знает даже пхп.
самостоятельно он НИ СТРОЧКИ написать не может.
Зачем ему Sql, если он не знает пхп?

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #16 : 18 Февраля 2004, 19:17:57 »
RomikChef Не прав, я сам написал, форму забивки данных!
Кстати, для интеграллов таблица умножения не нужна :)
Собственно говоря, код это хорошо, но мне нужно и понять, что и как в нём, так как мне выучить пхп надо, да и интересно
Если кто может, то помогите
Кстати, я бы и sql учил, но когда начал читать статьи по этой байде, нифига не понял!

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
Поможем?
« Ответ #17 : 18 Февраля 2004, 20:17:14 »
xax
а что такое интеграллы?
•••Jah\'d never let us down!•••

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #18 : 19 Февраля 2004, 16:55:47 »
Xander Интегралл, это обратное действие взятия производной, интеграл от f(x)dx=F(x)
Лучше бы помог, чем глупости спрашивать

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #19 : 19 Февраля 2004, 16:57:23 »
Подскажите, хоть, где менять надо и какие фуенкции использовать

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Поможем?
« Ответ #20 : 19 Февраля 2004, 18:26:24 »
Информация для размышления (по поводу сортировок)

<?
$file="news/news.txt";
$arr=file($file);
echo 
"Несортированный
"
;
foreach (
$arr as $a=>$b) {
echo 
"$a -> $b 
"
;
}
echo 
"<hr>";

asort($arr);
echo 
"Сортированный функцией asort
"
;
foreach (
$arr as $a=>$b) {
echo 
"$a -> $b 
"
;
}
echo 
"<hr>";
?>
Все болезни от нервов, только сифилис от удовольствия

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #21 : 20 Февраля 2004, 00:20:22 »
Mog. Тут есть странност, например если в базе 5 строчек, то строк выводится 7, но последние три -
6 ->
7 ->
8 ->

Ты не совсем понял:
Нужно так, чтобы выводилось в отсортированном виде ссылки на другой php файл, но так, чтобы в нём (В другом файле) ничего не менять!
Или нужно как - то состыковать с
$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[1]
";
}
}
if (!$str_arr) echo "Íîâîñòåé íà ýòó áóêâó íåò";
?>
Код выводит на каждой странице второй столбик по букве, тоесть адрес?word=a, то выводятся все строчки в которых во втором столбике слово начинается на "a"
« Последнее редактирование: 20 Февраля 2004, 00:48:14 от xax »

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Поможем?
« Ответ #22 : 20 Февраля 2004, 10:24:13 »
Цитировать
xax
Ты не совсем понял
Я совсем не понял, что нужно.
Я напишу чего я понял, а ты поправь.
1. У тебя есть файл состоящий из отдельных строк
2. Каждая строка состоит из двух частей разделенных символом ";"
3. Необходимо прочитать файл в массив построчно
4. Необходимо отсортировать массив по второй части строки
5. При сортировке необходимо сохранять связь между строкой в массиве и местоположением строки в файле
6. После сортировки из этого массива необходимо выбрать строки, вторая часть которых начинается на букву $word
7. Выбранные строки(или их первую/вторую часть) показать в виде ссылок с параметром определяющим местоположение строк в файле

Y/N
Все болезни от нервов, только сифилис от удовольствия

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #23 : 20 Февраля 2004, 18:35:56 »
Mog. Да ты полностью прав, только под буквой $word ты имел ввиду, что в адресной строке в зависимости от того чему равен этот ператор, такую страницу он и будет нам выдовать или нет,
а так полностью верно

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Поможем?
« Ответ #24 : 21 Февраля 2004, 11:00:39 »
Ok!
Попробуем набросать код с комментариями, согласно сформулированным требованиям.
Сразу хочу оговориться, что я не адепт и не ас РНР. Чайник, так скажем-с.
Потому оптимизацией здесь даже пахнуть не будет :)
Дабы не распылять код на мелкие скрипты, сваливать все будем в один.
Поехали.

<?
//Начнем с анализа ситуации, т.е. с проверки пришеждших параметров
//Да! Предполагается, что register_gloabls=On и скрипт называется sort.php
//Случай первый, скрипт запущен без параметров, $word, естественно, отсутствует
if (!$word){
	
//Создаем массив из букв
	
$ar=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
	
//пишем инструкцию для юзера
	
echo 
"Выбери нужную букву 
"
;
	
echo 
"| ";
	
foreach (
$ar as $a) {//перебираем массив по значениям
	
	
//и пытаемся красиво его "нарисовать"
	
	
echo 
"<a href=\\"sort.php?word=$a\\"> $a</a> | ";
	
	
}
	
}
//Случай второй, буква выбрана, $word присутствует
if($word){
	
$file="news/news.txt";//Задаем имя файла
	
$arr=file($file);//читаем его построчно в массив
	
//Нижеследующее действие меняет местами части строк для сортировки строк по второй части
	
//Тебе, кстати, давали совет поменять изначально эти части местами при создании файла news.txt
	
//Могу только присоединиться к этому пожеланию
	
foreach (
$arr as $a=>$b) {
	
	
$now=explode(";"$b);
	
	
$new_arr[$a]=$now[1].";".$now[0];
	
	
}
	
//Теперь массив готов к сортировке, вторая часть строки стала первой,
	
//ну мы его и сортируем по значениям(строкам), сохраняя связь между ними и 
	
//ключами(которые суть - номер строки в файле)
	
asort($new_arr);
	
//Теперь выбираем из массива то, что нам нужно, руководствуясь первой буквой 
	
//"бывшего второго" (а ныне первого) "столбика" и параметром $word
	
foreach (
$new_arr as $a=>$b) {
	
	
$first=$b{0};
	
	
$first=strtolower($first);
	
	
if (
$first=="$word") {
	
	
	
$str_arr=explode(";"$b);
	
	
	
//и печатаем первую часть строки (не забывая, что в файле она
	
	
	
//соответствует второй части), при этом параметр n однозначно определяет
	
	
	
//местоположение строки в файле (к чему и стремились)
	
	
	
//Лирическое отступление
	
	
	
//Если нужно печатать другую часть тогда 
	
	
	
//меняешь $str_arr[0] на $srt_arr[1]
	
	
	
$nomer=$a+1;
	
	
	
echo 
"<a href=page.php?n=$nomer>$str_arr[0]</a>
"
;
	
	
	
}
	
	
}
	
if (!
$str_arr) echo "Игр на эту букву нету";
}
?>
Все болезни от нервов, только сифилис от удовольствия

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Поможем?
« Ответ #25 : 21 Февраля 2004, 11:02:42 »
Цитировать
xax:
последние три -
6 ->
7 ->
8 ->
А ты уверен, что у тебя пустых строк в файле нет?
Все болезни от нервов, только сифилис от удовольствия

Оффлайн xax

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 230
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Поможем?
« Ответ #26 : 22 Февраля 2004, 01:38:45 »
Mog.
Цитировать
Mog.:
//Тебе, кстати, давали совет поменять изначально эти части местами при создании файла news.txt

Ты имеешь ввиду поменять местами первый и второй столбцы?
Так это можно
Большое спасибо, твой код офигенная штука, и особенное спасибо за комментарии, самое важно ещё и понять код
А зачем $nomer=$a+1;
« Последнее редактирование: 22 Февраля 2004, 02:03:54 от xax »

Оффлайн Mog.

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 828
  • +0/-0
  • 0
    • Просмотр профиля
Поможем?
« Ответ #27 : 25 Февраля 2004, 13:14:49 »
>$nomer=$a+1
затем, что строки в файле считают : один, два, три, ... и т.д., а элементы в массиве : ноль, один, два, ... и .тд.
Все болезни от нервов, только сифилис от удовольствия

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28