Jump to content

people2010

User
  • Posts

    313
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by people2010

  1. Решил опробовать другой,более правильный вариант, но он у меня не сработал. По видеоуроку попробовал написать постраничную навигацию, для теста как там было указано создал 2 таблицы: Таблица lessons.php id cat text 1 1 Петя 2 1 Фрося 3 1 Борис 4 1 Анатолий 5 1 Банан 6 1 Тарзан 7 1 Макс 8 1 Министр 9 1 Факел 10 1 Природа 11 1 Листья 12 1 Друзья 13 1 Морковь 14 1 Титаник 15 1 Мел 16 1 Натрий 17 1 Вуглевод 18 1 Кислород 19 1 Дартаньян 20 1 Поезд Таблица options.php d str 1 3 Файл database.php <?php $server = 'localhost'; //Имя сервера $user = 'privet'; //Логин $password = '12345'; //Пароль $db = 'video'; $table = 'lessons'; //Название таблицы $error_database = '<h2>Произошла ошибка в базе данных,<br/> в ближайшее время она будет устранена!</h2>'; $connect = mysql_connect($server,$user,$password); if(!$connect){ echo $error_database; exit; }; //$connect по какому соединению мы работаем $select = mysql_select_db($db,$connect); if(!$select){ echo $error_database; exit; }; ?> Код самой постраничной навигации, файл cat_view.php <?php include '../blocks/database.php'; /*Соединяемся с Базой Данных*/ $result77 = mysql_query("SELECT str FROM options", $connect); $myrow77 = mysql_fetch_array($result77); $num = $myrow77["str"]; // Извлекаем из URL текущую страницу @$page = $_GET['page']; // Определяем общее число сообщений в базе данных $result00 = mysql_query("SELECT COUNT(*) FROM data WHERE cat='$cat'"); $temp = mysql_fetch_array($result00); $posts = $temp[0]; // Находим общее число страниц $total = (($posts - 1) / $num) + 1; $total = intval($total); // Определяем начало сообщений для текущей страницы $page = intval($page); // Если значение $page меньше единицы или отрицательно // переходим на первую страницу // А если слишком большое, то переходим на последнюю if(empty($page) or $page < 0) $page = 1; if($page > $total) $page = $total; // Вычисляем начиная с какого номера // следует выводить сообщения $start = $page * $num - $num; // Выбираем $num сообщений начиная с номера $start $result = mysql_query("SELECT id,text FROM lessons WHERE cat='$cat' ORDER BY id LIMIT $start, $num",$connect); // Проверяем нужны ли стрелки назад if ($page != 1) $pervpage = '<a href=view_cat.php?cat='.$cat.'&page=1>Первая </a> | <a href=view_cat.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a> | '; // Проверяем нужны ли стрелки вперед if ($page != $total) $nextpage = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 1) .'>Следующая</a> | <a href=view_cat.php?cat= '.$cat.'&page=' .$total. '>Последняя</a>'; // Находим две ближайшие станицы с обоих краев, если они есть if($page - 5 > 0) $page5left = ' <a href=view_cat.php?cat= '.$cat.'&page='. ($page - 5) .'>'. ($page - 5) .'</a> | '; if($page - 4 > 0) $page4left = ' <a href=view_cat.php?cat='.$cat.'&page= '. ($page - 4) .'>'. ($page - 4) .'</a> | '; if($page - 3 > 0) $page3left = ' <a href=view_cat.php?cat='.$cat.'&page= '. ($page - 3) .'>'. ($page - 3) .'</a> | '; if($page - 2 > 0) $page2left = ' <a href=view_cat.php?cat='.$cat.'&page= '. ($page - 2) .'>'. ($page - 2) .'</a> | '; if($page - 1 > 0) $page1left = '<a href=view_cat.php?cat='.$cat.'&page= '. ($page - 1) .'>'. ($page - 1) .'</a> | '; if($page + 5 <= $total) $page5right = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 5) .'>'. ($page + 5) .'</a>'; if($page + 4 <= $total) $page4right = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 4) .'>'. ($page + 4) .'</a>'; if($page + 3 <= $total) $page3right = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 3) .'>'. ($page + 3) .'</a>'; if($page + 2 <= $total) $page2right = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 2) .'>'. ($page + 2) .'</a>'; if($page + 1 <= $total) $page1right = ' | <a href=view_cat.php?cat= '.$cat.'&page='. ($page + 1) .'>'. ($page + 1) .'</a>'; // Вывод меню если страниц больше одной if ($total > 1) { Error_Reporting(E_ALL & ~E_NOTICE); echo "<div class=\"pstrnav\">"; echo $pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page. '</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage; echo "</div>"; } ?> Выдаёт ошибки: Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 9 [Денвер: показать возможную причину ошибки] Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\sitik.ru\www\blocks\view_cat.php on line 10 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 27 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 30 Notice: Undefined variable: cat in z:\home\sitik.ru\www\blocks\view_cat.php on line 30 Хотя я всё сделал по инструкции,как говорилось в видеоуроке. Подскажите пож, что сделать чтоб сработало?
  2. Вот так тоже не работает. $num_rows = ceil($num_rows/$chislo);
  3. Написал так, всё равно выводит на 1-ой странице 5, а на 2 и 3 по 10. $num_rows = ceil(num_rows/chislo);
  4. Расшифруйте пож. пару мест непонятных из этого кода, я написал в комментариях. А именно вот эти строки: 1)$result = mysql_query("SELECT * from $table ORDER by id desc"); Этоо означает выбрать из таблицы все строки сортируя их в обратном порядке, это зачем делать? 2) $num_rows = mysql_num_rows($result); Зачем считать кол-во записей в таблице,я так понял это кол-во строк 3) $num_rows = round($num_rows/$chislo); Зачем здесь функция раунд? И у меня 20 записей, почему на первой странице выводит 5 записей, а на 2 и 3 по 10? 4) ($_GET['str'])) //Откуда взялась переменная str в глобальном массиве? 5) $nav = intval($nav); //Вот это место зачем писать? 6) for ($i=1; $i<$num_rows; $i++) { //А чему переменная num_rows равна,где она получает значения? if ($i != $nav) { //А это что за проверка странная? echo '<a href="'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> ';//Вот этот кусок желательно растолкуйте понятней ?str и пхп_селф } else { // АКТИВНУЮ СТРАНИЦУ ДЕЛАЕМ НЕ ГИПЕРССЫЛКОЙ echo '<span>'.$i.'</span> '; //Что это за вывод переменной $i и чему эта переменная будет равна? } } 7) if (!isset($_GET['str'])) { //Что это за проверка и откуда взялась переменная стр в глобальном массиве,что она делает? 8)Последнее,непонятное вот это растолкуйте пож. подробней '.substr($row['text'],0,100).'.. <a href="text.php?nomer='.$row['id'].'">>></a></p>'; <? $server = 'localhost'; // ИМЯ СЕРВЕРА $user = 'ptisa'; // ПОЛЬЗОВАТЕЛЬ $pass = '12345'; // ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ $db = 'video'; // БАЗА ДАННЫХ $table = 'lessons'; // НАЗВАНИЕ ТАБЛИЦЫ $chislo = 5; // ЧИСЛО СООБЩЕНИЙ НА СТРАНИЦЕ // ДЛЯ УДОБСТВА ОБОЗНАЧИМ ПЕРЕМЕННУЮ С ТЕКСТОМ ОШИБКИ $text_error = '<br />Ошибочка вышла!'; // СОЕДЕНИМСЯ С MySQL $connect = mysql_connect ($server, $user, $pass); if (!$connect) { echo $text_error; exit; } // СОЕДЕНИЯЕМСЯ С БАЗОЙ ДАННЫХ $select = mysql_select_db($db); if (!$select) { echo $text_error; exit; } // СОЗДАЁМ ЗАПРОС $result = mysql_query("SELECT * from $table ORDER by id desc"); // СЧИТАЕМ КОЛЛИЧЕСТВО ЗАПИСЕЙ В ТАБЛИЦЕ - У МЕНЯ ИХ 20 $num_rows = mysql_num_rows($result); // Это подсчёт из скольки строк состоит табл. зачем это делать? // А ТЕПЕРЬ СЧИТАЕМ НА СКОЛЬКО СТРАНИЦ НАМ РАЗБИТЬ ЗАПИСИ И ВЫДЕЛЯЕМ ЦЕЛОЕ ЧИСЛО $num_rows = round($num_rows/$chislo); //Зачем здесь функция round? // ЗДЕСЬ МЫ ПРОВЕРЯЕМ НА КАКОЙ СТРАНИЦЕ СЕЙЧАС ПОЛЬЗОВАТЕЛЬ if (isset($_GET['str'])) { $nav = $_GET['str']; } else { $nav = 0; } $nav = intval($nav); // Смысл этой строки, зачем? Что делает интвал с переменной nav? echo 'Навигация: '; // А ТЕПЕРЬ ВЫВОДИМ НОМЕРА СТРАНЦ for ($i=1; $i<$num_rows; $i++) { //Если у меня 20 записей в базе значит здесь будет от 1 до 4? if ($i != $nav) { ..Что это за проверка и зачем? echo '<a href="'.$PHP_SELF.'?str='.$i.'">'.$i.'</a> '; //прокомментируйте вот это место подробнее } else { // АКТИВНУЮ СТРАНИЦУ ДЕЛАЕМ НЕ ГИПЕРССЫЛКОЙ echo '<span>'.$i.'</span> '; //Что это за вывод? } } echo '<hr />'; // ОТДЕЛИМ НАВИГАЦЮ ОТ КОНТЕНТА ДЛЯ НАГЛЯДНОСТИ // НАЧИНАЕМ ВЫВОДИТЬ САМУ ИНФОРМАЦИЮ ПОСТРАНИЧНО :) if (!isset($_GET['str'])) { $str = 0; } else { $str = $_GET['str']*$chislo - $chislo; } $nomer = $str + 5; // ФОРМИРУЕМ ЗАПРОС НУЖНОЙ НАМ ЧАСТИ ИНФОРМАЦИИ $result = mysql_query("SELECT * from $table ORDER by id asc limit $str, $nomer"); // ИНАЧЕ ВЫВОДИМ ОШИБКУ if (!$result) { echo $text_error; exit; } echo '<div style="width: 40%;">'; while ($row = mysql_fetch_array($result)) { echo '<p>'.$row['id'].' - <strong>'.$row['page'].'</strong> <br /> '.substr($row['text'],0,100).'.. <a href="text.php?nomer='.$row['id'].'">>></a></p>'; } echo '</div>'; mysql_close($connect); ?>
  5. Скажите, а зачем писать второй параметр, везде пишут что не обязательно, а другие говорят желательно,почему? Я про это $connect $sample= mysql_query("select * from lessons",$connect);
  6. Оказалось что в слове connect одна из букв была русская.
  7. НЕ могу соединиться с базой данных, хотя раньше вроде соединялся. Вот так пробую писать: А потом пробую в файле индекс подключить это код ,вот так: <?php include 'blocks/database.php'; /*Соединяемся с Базой Данных*/ ?> Выдаёт ошибку: Notice: Undefined variable: connect in z:\home\sitik.ru\www\blocks\database.php on line 10 [Денвер: показать возможную причину ошибки] Произошла ошибка в базе данных, в ближайшее время она будет устранена! Хотя вроде всё правильно не могу понять что не так.
  8. Вот такой есть код: *html body { width:expression((document.body.parentNode.offsetWidth<1000)?'1000px':'auto'); } То есть document.body.parentNode.offsetWidth<1000) В объекте под названием document находиться внутренний объект под названием body, в этом внутреннем объекте находиться свойство parentNode но не метод, а в этом свойстве находиться внутренне свойство offsetWidth?
  9. Наконец-то, вот так сработало везде: .strelka_marker li{list-style-type:none; display:block; background:url(img/strelka.gif) no-repeat; margin-left:5px; padding-left:22px; }
  10. Всё равно не то выходит, в моём случаи последнем выходит такое:
  11. Лучший вариант, это так: .strelka_marker img{line-height:25px; padding-left:10px; margin-right:5px;} А потом: <ul class="strelka_marker"> <img src="../img/strelka.gif" />Пункт1<br /> <img src="../img/strelka.gif" />Пункт2<br /> <img src="../img/strelka.gif"/>Пункт3<<br /> <img src="../img/strelka.gif" />Пункт4<br /> </ul>
  12. .strelka_marker li{background:url(img/strelka.gif) no-repeat 5px center; line-height:25px; padding-left:30px; overflow:hidden;} Вот так сработало вроде, но проблема в том, что в ИЕ6, не обрезало точки, которые выходят за картинку. Как быть?
  13. Так значит для мин-видз явускрипт надо.
  14. Я был в гугле, но на данный вопрос не нашёл ответа. ИЕ9 уже вышла только она работает для ВИсты и виндоус7
  15. 1)Не срабатывает такое для ИЕ6,как можно исправить? html body { min-width:1000px; } 2)Не работает вот такое для ИЕ6 и ИЕ7 .strelka_marker{list-style-image:url(img/strelka.gif); margin-left:25px; line-height:25px;} Файл хтмл: <ul class="strelka_marker"> <li>Пункт1</li? <li>Пункт2</li? <li>Пункт3</li? <li>Пункт4</li? </ul> Во всех браузерах включая ИЕ8, отображает так: В ИЕ6,ИЕ7 отображает так: Как исправить в ИЕ7 и ИЕ6?
  16. Упростил решение вот так и всё заработало на всех браузерах, проверял. .title{height:34px; background:url(img/video.png) no-repeat; border:1px solid black;} .textpos1{ padding-top:7px; display:block; padding-left:7px; font-size:15px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;} <div class='title'><span class="textpos2">Текст</span></div> Хотя странно, что свойство position везде работает по разному. Вывод: 1) не использовать вообще: position:relative потому-что пр и уменьшении окна браузера то что им размещено отображается в разных местах браузера, чем меньше уменьшил окно браузера тем полетит вправо или влево то, что ты им с позиционировал 2)Не использовать: position:absolute; иначе будет отображаться во всех версиях Ие одинаково, включая оперу, но будет отображаться по другому в ГУГЛХРОм и третьему МОЗИЛА, во всех версиях будет отображаться по другому. 3)Использовать маргин и паддинг для выхода из таких ситуаций и будет отображаться в: Opera 9.22, 9.63,IE - 6,7,8,Mozila,GoogleChrome,Netskape и даже Safari одинаково. Если я в чём-то не прав, напишите как position:absolute использовать так,чтоб во всех браузерах отступало одинаково то,что я им позиционирую
  17. Попробовал сейчас написать без условных комментариев. Написать в стилях опробовал такое: .textpos1{position:absolute; top:710px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;} В хтмл поробовал такое: <span class="textpos1">Для женщин</span> Работает в ИЕ6,Ие7,ИЕ8,Опера9,22, Опера 9,63 Не работает: Мозила, ГУГХРОм. Что делать?
  18. Как поставить условный коментарий в гуглхроме, и как поставить в браузере опера, выше версии 9,22(кроме 9,22), на этих браузерах у меня отображается где-то в стороне, а не на картинке. Если кто знает, напишите как исправить.
  19. Вот так сработало для мозилы,только не понятно что это такое: html:root html:root .textpos1{position:absolute; top:721px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;} А в гуглхроме вверх занесло, как в гуглхроме исправить?
  20. точно, вот так сработало. Содержимое в отд. файле ксс: .textpos1{position:absolute; top:725px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;} код хтмл: <!--[if gte IE 6]> <style type="text/css"> .textpos1{top:710px;} </style> <![endif]--> <span class="textpos1">Для женщин</span>
  21. Да, читаю вроде. Из поста 7-го код работает, но 2 раза выводит текст, почему ,я же поставил условного? Вот так выводит 2 раза один и тот же текст. <span style="position:absolute; top:725px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;"> Для женщин</span> <!--[if gte IE 6]> <span style="position:absolute; top:705px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;"> Для женщин</span> <![endif]-->
  22. Тот пост я стёр, обновил новый, понял что там не так,но когда понял,вы уже успели его прочитать,прочитайте обновлённый 7ой.
  23. Случилась небольшая проблема, вот есть у меня текст который размещается на определённой картинке сайта. Если написать так, будет 2 раза выводиться текст на картинке, а мне нужно 1 раз. <span style="position:absolute; top:725px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;"> Для женщин</span> <!--[if IE]> <span style="position:absolute; top:705px; left:35px; font-weight:bold; font-family:Verdana, Arial, Helvetica, sans-serif;"> Для женщин</span> <![endif]-->
  24. Скажите для того чтоб задавать дял браузера ИЕ для опр. классов опред. свойства для версий Ие: * IE 6 — * html * IE 7 — *+html А что использовать для 8ой версии тогда?
  25. Точно, помогло,спс, только пришлось переконструировать всё заново.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy