Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/16: Рейтинг темы: голосов - 16, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 01.05.2012
Сообщений: 15
1
MySQL

Редактирование клеточки страницы классного журнала

19.06.2012, 19:53. Показов 3116. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Скрипт edit.php выводит страницу классного журнала, при нажатие на кнопочку с оценкой вызывается cell.php и мы переходим на страницу редактирования клеточки. Только вылезают ошибки
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\school\www\page\cell.php on line 67
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\school\www\page\cell.php on line 70
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\school\www\page\cell.php on line 80
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\school\www\page\cell.php on line 110
edit.php
PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
  <title>Страница классного журнала, версия "для учителя"</title>
  <style>
    .cell {width:100%}
  </style>
  </head>
  <body>
    <h2>Страница классного журнала</h2>
    <?php
      function DayMonth($dt) {
      //Преобразует строку yyyy-mm-dd -> dd/mm
      //Используется функция substr, которая получает подстроку из строки
      //Формат substr: (строка, начиная с, количество символов)
      //Символы в строке индексируются с нуля
        return substr($dt,8,2)."/".substr($dt,5,2);
      }
      mysql_connect("localhost", "webuser", "123456789");
      mysql_select_db("page");
      $result=mysql_query("select student_id,name,surname from student order by surname, name");
      
      //Запомним в массиве $students данные всех учеников
      while ($arr=mysql_fetch_assoc($result)) $students[]=$arr;
      
      $result=mysql_query("select lesson_id,lesson_date,subject,hometask from lesson order by lesson_date");
      
      //Запомним в массиве $lessons данные всех уроков
      while ($arr=mysql_fetch_assoc($result)) $lessons[]=$arr;
      
      //Выведем левую таблицу
      echo "<table border='1' align='left'><tr>";
      echo "<th>№</th><th>Фамилия, имя</th>";
      
      //Выведем "шапку" таблицы -- даты уроков
      foreach ($lessons as $lesson) 
        echo "<th>".DayMonth($lesson['lesson_date'])."</th>";
      echo "</tr>";
      
      //Выведем столбцы с номерами и фамилиями учеников
      foreach ($students as $student) { 
        echo "<tr><td>".$student['student_id']."</td>";
        echo "<td><i>".$student['surname']." ".$student['name']."</i></td>";
        foreach ($lessons as $lesson) {
          $st_id=$student['student_id'];
          $l_id=$lesson['lesson_id'];
          $td="&nbsp;"; //Предположим, что очередная ячейка пустая...
          $result=mysql_query("select * from absence where student_id=$st_id and lesson_id=$l_id");
          //Если в таблице absence есть запись о пропуске -- поменяем значение $td
          if (mysql_fetch_assoc($result)) $td="н";
          else {
            //Посмотрим, если у данного ученика оценки за данный урок...
            $result=mysql_query("select grade from grade where student_id=$st_id and lesson_id=$l_id");
            $delimit="";
            while ($grade=mysql_fetch_assoc($result)) {
              //Если оценки есть, накопим их в переменной $td 
              $td=$td.$delimit.$grade['grade'];
              $delimit="/";
            }
          }
          //И, наконец, выведем, что у нас накопилось в $td
          echo "<td align='center'><input type='button' class='cell' value='$td' onclick='document.location=\"cell.php?student_id=$st_id&lesson_id=$l_id\"'></td>";
        }
        echo "</tr>";
      }
      echo "</table>";    
      
      //Выведем правую таблицу
 
echo "<table border='1' bgcolor='#EEEEEE'>";
echo "<tr><th>Дата</th><th>Тема урока</th><th>Домашнее задание</th></tr>";
foreach ($lessons as $lesson)
{
    echo '<tr>
            <td>'.DayMonth($lesson['lesson_date']).'</td>
            <td>'.$lesson['subject'].'</td>
            <td>'.$lesson['hometask'].'</td>
        </tr>';
}
echo "</table>";
?> 
  </body>
</html>
cell.php

PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<?php
   //Соединимся с базой данных (имя и пароль мы задали в прошлой лекции)
   mysql_connect("localhost", "webuser", "123456789");
   mysql_select_db("page");
 
   //В переменной $present могут быть переданы значения 0 или 1
   //  0 -- ученик пропустил данный урок
   //  1 -- ученик был на данном уроке
   if (isset($present)) {
     //Если ученик был на данном уроке,
     //уберем отметку о пропуске из таблицы absence
     if ($present) mysql_query("delete from absence
                        where student_id=$student_id and lesson_id=$lesson_id");
     else {
       //Если же ученик пропустил урок..
       // ... уберем все его оценки за данный урок из таблицы grade
       mysql_query("delete from grade
                    where student_id=$student_id and lesson_id=$lesson_id");
       // ... добавим отметку о пропуске в таблицу absence
       mysql_query("insert into absence
                    set student_id=$student_id, lesson_id=$lesson_id");
     }
   }
   if (isset($grade)) {
     //Переменная $grade будет определена в том случае,
     //если мы ставим ученику оценку за урок. В этом случае добавим
     //новую запись в таблицу grade
     mysql_query("insert into grade
               set grade=$grade, student_id=$student_id, lesson_id=$lesson_id");
   }
     //Переменная $delete будет определена в том случае,
     //если мы удаляем оценку ученика за данный урок
   if (isset($delete)) {
      mysql_query("delete from grade where grade_id=$delete");
   }
   //Функция DayMonth использовалась в предыдущей лекции.
   //Она преобразует вид даты к более привычному
   function DayMonth($dt) {
        return substr($dt,8,2)."/".substr($dt,5,2);
  }
?>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
  <title>Редактирование клеточки страницы классного журнала</title>
  <style>
   h1,h2 {color:gray;}
  </style>
  <script type="text/javascript">
    //Функция check() используется в обработчике onsubmit для
    //проверки допустимости оценки
    function check() {
      if ((document.forms["fgrade"].grade.value>="2")&&
          (document.forms["fgrade"].grade.value<="5")) return true;
      else {
        alert("В качестве оценки допустимы только цифры от 2 до 5");
        return false;
      }
    }
  </script>
  </head>
  <body>
  <h1>Редактирование клеточки страницы классного журнала</h1>
  <?php
   $result=mysql_query("select student_id,name,surname
                        from student where student_id=$student_id");
   $student=mysql_fetch_assoc($result);
   $result=mysql_query("select lesson_id,lesson_date,subject
                        from lesson where lesson_id=$lesson_id");
   $lesson=mysql_fetch_assoc($result);
   echo "<p>Ученик: <b>".$student['name']." ".$student['surname'].
                    "</b> (№ ".$student['student_id']." в журнале)";
   echo "<p>Урок: <b>".DayMonth($lesson['lesson_date']).
                  "</b> по теме <i>".$lesson['subject']."</i>";
  ?>
  <h2>Был/не был</h2>
  <?php
   $result=mysql_query("select * from absence
                       where student_id=$student_id and lesson_id=$lesson_id");
   if (mysql_fetch_assoc($result)) {
     $wasnt="checked";$was=""; //Эти переменные используются, чтобы
                               //отметить соответствующую радиокнопку
     $grade_display="none";    //Эта переменная определяет видимость
                               //блока с оценками
   } else {
     $was="checked";$wasnt="";
     $grade_display="block";
   }
   echo "<p><input type='radio' name='absence' value='0' $was
             onclick='document.location=\"cell.php?present=1&student_id=$student_id&lesson_id=$lesson_id\"'>
             &nbsp;Был на уроке";
   echo "<p><input type='radio' name='absence' value='0' $wasnt
             onclick='document.location=\"cell.php?present=0&student_id=$student_id&lesson_id=$lesson_id\"'>
             &nbsp;Пропустил урок";
 
   //Ниже -- блок с оценками. Он может быть виден или не виден
   echo "<div id='grades' style='display:$grade_display'>";
  ?>
  <h2>Оценки за урок</h2>
   <form name="fgrade" action="cell.php" onsubmit="return check();">
   <?php
     //Два спрятанных поля, которые не видит пользователь
     echo "<input type='hidden' name='student_id' value='$student_id'>";
     echo "<input type='hidden' name='lesson_id' value='$lesson_id'>";
   ?>
   <table border="1">
   <?php
   $result=mysql_query("select grade_id,grade from grade
           where student_id=$student_id and lesson_id=$lesson_id");
   while ($grade=mysql_fetch_assoc($result)) {
     echo "<tr>";
     echo "<td>".$grade['grade']."</td><td><input type='button' value='Удалить'
              onclick='document.location=\"cell.php?delete=".
              $grade['grade_id']."&student_id=$student_id&lesson_id=$lesson_id\"'>
          </td>";
     echo "</tr>";
   }
   ?>
   <tr><td><input type='text' name='grade' size='2'></td><td>
   <input type='submit' name='sent' value='Поставить'></td></tr>
   </table  >
   </div>
  <p><a href="edit.php">На страницу журнала</a>
  </div>
  </form>
  </body>
</html>
дамп БД
MySQL
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
-- phpMyAdmin SQL Dump
-- version 2.6.1
-- [url]http://www.phpmyadmin.net[/url]
-- 
-- Хост: localhost
-- Время создания: Июн 19 2012 г., 19:39
-- Версия сервера: 5.0.45
-- Версия PHP: 5.2.4
-- 
-- БД: `page`
-- 
 
-- --------------------------------------------------------
 
-- 
-- Структура таблицы `absence`
-- 
 
CREATE TABLE `absence` (
  `student_id` int(11) NOT NULL,
  `lesson_id` mediumint(9) NOT NULL,
  PRIMARY KEY  (`student_id`,`lesson_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Пропуск';
 
-- 
-- Дамп данных таблицы `absence`
-- 
 
INSERT INTO `absence` VALUES (1, 1);
INSERT INTO `absence` VALUES (2, 2);
 
-- --------------------------------------------------------
 
-- 
-- Структура таблицы `grade`
-- 
 
CREATE TABLE `grade` (
  `grade_id` int(11) NOT NULL auto_increment,
  `student_id` int(11) NOT NULL,
  `lesson_id` int(11) NOT NULL,
  `grade` tinyint(4) default NULL,
  `description` varchar(100) default NULL,
  PRIMARY KEY  (`grade_id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7 ;
 
-- 
-- Дамп данных таблицы `grade`
-- 
 
INSERT INTO `grade` VALUES (1, 1, 2, 2, '-');
INSERT INTO `grade` VALUES (2, 3, 2, 5, '-');
INSERT INTO `grade` VALUES (3, 4, 1, 3, '-');
INSERT INTO `grade` VALUES (4, 4, 2, 2, 'за то-то');
INSERT INTO `grade` VALUES (5, 4, 2, 3, 'за то-то');
INSERT INTO `grade` VALUES (6, 4, 2, 5, NULL);
 
-- --------------------------------------------------------
 
-- 
-- Структура таблицы `lesson`
-- 
 
CREATE TABLE `lesson` (
  `lesson_id` int(11) NOT NULL,
  `lesson_date` date NOT NULL,
  `subject` varchar(200) NOT NULL,
  `hometask` varchar(200) NOT NULL,
  PRIMARY KEY  (`lesson_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Урок';
 
-- 
-- Дамп данных таблицы `lesson`
-- 
 
INSERT INTO `lesson` VALUES (1, '2009-09-01', 'Электронные таблицы. Основные понятия', 'Параграф 1, задание 3');
INSERT INTO `lesson` VALUES (2, '2009-09-03', 'Построение графиков и диаграм в электронных таблицах', 'Подготовка к самостоятельной работе по запиисям в тетради');
 
-- --------------------------------------------------------
 
-- 
-- Структура таблицы `student`
-- 
 
CREATE TABLE `student` (
  `student_id` int(11) NOT NULL,
  `name` varchar(50) NOT NULL,
  `surname` varchar(50) NOT NULL,
  PRIMARY KEY  (`student_id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
 
-- 
-- Дамп данных таблицы `student`
-- 
 
INSERT INTO `student` VALUES (1, 'Артём', 'Арбузов');
INSERT INTO `student` VALUES (2, 'Боря', 'Бананов');
INSERT INTO `student` VALUES (3, 'Вета', 'Вишневая');
INSERT INTO `student` VALUES (4, 'Гарик', 'Грейпфрут');
Помогите, пожалуйста! Что не так? Все по книжке делала.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2012, 19:53
Ответы с готовыми решениями:

Некое подобие классного журнала
задача следующая: 1) имея бд вывести на экран ее содержимое в зависимости от вопроса(не суть...

Из записей в БД сделать страничку классного журнала
Собственно, как из такой вот БД: Сделать что-то похожее на такую таблицу: Т.е. пользователь...

Помогите дописать скрипт "Страница классного журнала"
&lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=windows-1251&quot;&gt;...

Пройдите в квадрате от клеточки 1 к клеточке 2 так, чтобы посетить все клеточки по одному разу
Всем привет. Есть такая задача: Пройдите в квадрате от клеточки 1 к клеточке 2 так, чтобы посетить...

19
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
19.06.2012, 21:23 2
проверьте соединение с базой (хост, имя юзера и пароль), выбор базы и таблицы (а также полей таблицы) - те ли вы выбираете
и добавьте ко всем запросам mysql проверку или просто допишите перед точкой с запятой запроса
SQL
1
 OR die(mysql_error())
SQL
1
2
//наподобие такого
mysql_query("INSERT INTO `table`(`name`) VALUES ('$name')") OR die(mysql_error());
0
1 / 1 / 1
Регистрация: 01.05.2012
Сообщений: 15
20.06.2012, 17:15  [ТС] 3
Ошибка теперь:
You have an error in your SQL syntax; check the manual that corresponds to you MySQL server version for the right syntax to use near " at line 2
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.06.2012, 17:43 4
где то ошибку допустили, скорее всего запятую или апостроф/кавычку/тильду не поставили
0
1 / 1 / 1
Регистрация: 01.05.2012
Сообщений: 15
20.06.2012, 19:44  [ТС] 5
Я так дописала:
PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<?php
   mysql_connect("localhost", "webuser", "123456789");
   mysql_select_db("page");
   //В переменной $present могут быть переданы значения 0 или 1
   //  0 -- ученик пропустил данный урок
   //  1 -- ученик был на данном уроке
   if (isset($present)) {
     //Если ученик был на данном уроке,
     //уберем отметку о пропуске из таблицы absence
     if ($present) mysql_query("delete from absence
                        where student_id=$student_id and lesson_id=$lesson_id") or die(mysql_error());
     else {
       //Если же ученик пропустил урок..
       // ... уберем все его оценки за данный урок из таблицы grade
       mysql_query("delete from grade
                    where student_id=$student_id and lesson_id=$lesson_id") or die(mysql_error());
       // ... добавим отметку о пропуске в таблицу absence
       mysql_query("insert into absence
                    set student_id=$student_id, lesson_id=$lesson_id") or die(mysql_error());
     }
   }
   if (isset($grade)) {
     //Переменная $grade будет определена в том случае,
     //если мы ставим ученику оценку за урок. В этом случае добавим
     //новую запись в таблицу grade
     mysql_query("insert into grade
               set grade=$grade, student_id=$student_id, lesson_id=$lesson_id") or die(mysql_error());
   }
     //Переменная $delete будет определена в том случае,
     //если мы удаляем оценку ученика за данный урок
   if (isset($delete)) {
      mysql_query("delete from grade where grade_id=$delete") or die(mysql_error());
   }
   //Функция DayMonth использовалась в предыдущей лекции.
   //Она преобразует вид даты к более привычному
   function DayMonth($dt) {
        return substr($dt,8,2)."/".substr($dt,5,2);
  }
?>
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1251">
  <title>Редактирование клеточки страницы классного журнала</title>
  <style>
   h1,h2 {color:gray;}
  </style>
  <script type="text/javascript">
    //Функция check() используется в обработчике onsubmit для
    //проверки допустимости оценки
    function check() {
      if ((document.forms["fgrade"].grade.value>="2")&&
          (document.forms["fgrade"].grade.value<="5")) return true;
      else {
        alert("В качестве оценки допустимы только цифры от 2 до 5");
        return false;
      }
    }
  </script>
  </head>
  <body>
  <h1>Редактирование клеточки страницы классного журнала</h1>
  <?php
   $result=mysql_query("select student_id,name,surname
                        from student where student_id=$student_id") or die(mysql_error());
   $student=mysql_fetch_assoc($result);
   $result=mysql_query("select lesson_id,lesson_date,subject
                        from lesson where lesson_id=$lesson_id") or die(mysql_error());
   $lesson=mysql_fetch_assoc($result);
   echo "<p>Ученик: <b>".$student['name']." ".$student['surname'].
                    "</b> (№ ".$student['student_id']." в журнале)";
   echo "<p>Урок: <b>".DayMonth($lesson['lesson_date']).
                  "</b> по теме <i>".$lesson['subject']."</i>";
  ?>
  <h2>Был/не был</h2>
  <?php
   $result=mysql_query("select * from absence
                       where student_id=$student_id and lesson_id=$lesson_id") or die(mysql_error());
   if (mysql_fetch_assoc($result)) {
     $wasnt="checked";$was=""; //Эти переменные используются, чтобы
                               //отметить соответствующую радиокнопку
     $grade_display="none";    //Эта переменная определяет видимость
                               //блока с оценками
   } else {
     $was="checked";$wasnt="";
     $grade_display="block";
   }
   echo "<p><input type='radio' name='absence' value='0' $was
             onclick='document.location=\"cell.php?present=1&student_id=$student_id&lesson_id=$lesson_id\"'>
             &nbsp;Был на уроке";
   echo "<p><input type='radio' name='absence' value='0' $wasnt
             onclick='document.location=\"cell.php?present=0&student_id=$student_id&lesson_id=$lesson_id\"'>
             &nbsp;Пропустил урок";
 
   //Ниже -- блок с оценками. Он может быть виден или не виден
   echo "<div id='grades' style='display:$grade_display'>";
  ?>
  <h2>Оценки за урок</h2>
   <form name="fgrade" action="cell.php" onsubmit="return check();">
   <?php
     //Два спрятанных поля, которые не видит пользователь
     echo "<input type='hidden' name='student_id' value='$student_id'>";
     echo "<input type='hidden' name='lesson_id' value='$lesson_id'>";
   ?>
   <table border="1">
   <?php
   $result=mysql_query("select grade_id,grade from grade
           where student_id=$student_id and lesson_id=$lesson_id") or die(mysql_error());
   while ($grade=mysql_fetch_assoc($result)) {
     echo "<tr>";
     echo "<td>".$grade['grade']."</td><td><input type='button' value='Удалить'
              onclick='document.location=\"cell.php?delete=".
              $grade['grade_id']."&student_id=$student_id&lesson_id=$lesson_id\"'>
          </td>";
     echo "</tr>";
   }
   ?>
   <tr><td><input type='text' name='grade' size='2'></td><td>
   <input type='submit' name='sent' value='Поставить'></td></tr>
   </table  >
   </div>
  <p><a href="edit.php">На страницу журнала</a>
  </div>
  </form>
  </body>
</html>
Не могу не кавычку, не апостроф, не тильду (апостроф обратный????) пропущенную найти
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.06.2012, 20:08 6
перепишите все запросы по такому образу
SQL
1
2
mysql_query("delete from `absence`
                        where `student_id`='$student_id' and `lesson_id`='$lesson_id'") OR die(mysql_error());
1) то есть все БД-шные названия полей в обратные апострофы (тильда) а все переменные в обычные апострофы. может дело в том, что вы число подставляете (в переменных же число?)
2) попробуйте выводить переменные перед запросом, а вместо mysql_query сделайте вот так, чтобы посмотреть сам запрос
PHP
1
2
$tesst="delete from `absence`where `student_id`='$student_id' and `lesson_id`='$lesson_id'";
var_dump($tesst);
3) по вашему коду - а у вас несколько запросов к БД трудно понять в каком именно месте ошибка, проверяйте по кускам - т.е. сначала один запрос, если нормально все - следующий, если ошибка - то пишите какая и в каком именно запросе. так вы поможете и себе (возможно, сами сможете разобраться) и нам "поможете быстрее помочь вам"))
1
0 / 0 / 1
Регистрация: 11.02.2013
Сообщений: 7
15.02.2013, 13:26 7
Olesya_Zhukova,
Здравствуйте. У меня такая же проблема как и у вас. Хотел бы спросить вы ее разрешили или нет? Если да, то можете ли вы и мне помочь?
0
1 / 1 / 1
Регистрация: 01.05.2012
Сообщений: 15
17.02.2013, 14:14  [ТС] 8
Вы проходите курс повышения квалификации "Основы web-программирования для школьного сайтостроительства" Островского на сайте "Первое сентября"? Это итоговая работа, я не помню, что мне там удалось сделать, но свидетельство о повышении мне выдали. Напишите почту в личку я отправлю архив Вам.
1
0 / 0 / 1
Регистрация: 11.02.2013
Сообщений: 7
18.02.2013, 18:19 9
Olesya_Zhukova, Да да, это самое. aljamkin1993@yandex.ru или aljamkin1993@mail.ru буду Вам очень благодарен

Добавлено через 7 часов 53 минуты
Olesya_Zhukova, Спасибо большое
0
0 / 0 / 0
Регистрация: 06.01.2016
Сообщений: 1
06.01.2016, 19:44 10
Я прохожу курс повышения квалификации "Основы web-программирования для школьного сайтостроительства" Островского. Битый день ломаю голову как вывести журнал данного класса по данному предмету
0
0 / 0 / 0
Регистрация: 19.06.2016
Сообщений: 1
19.06.2016, 06:24 11
Вы проходите курс повышения квалификации "Основы web-программирования для школьного сайтостроительства" Островского на сайте "Первое сентября"? Помогите мне. Не могу дописать скрипты.

Добавлено через 16 минут
alexandr593, Вам удалось сдать итоговую контрольную работу?
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 8
20.11.2016, 13:44 12
Доброго дня всем!
Задание тоже вынесло мозг. Код в файлах edit.php и cell.php соответствует приведённому ранее на этой странице.
В базе данных прописано то же, что и на странице, приведённой в этой теме.
К сожалению, не могу осилить проблемы:
1) как убрать ошибки в строках,
2) как сделать строчки для записи активными,
3) как менять "н" на пустое значение,
4) как выставлять оценки от 2 до 5 в клеточках.
Понимаю:
- как заменить один блок кода на другой,
- как исправить синтаксическую ошибку,
Не понимаю:
- большую часть лексики на php.
Время здорово поджимает. Люди добрые, уделите немного времени заблудшему!
Миниатюры
Редактирование клеточки страницы классного журнала   Редактирование клеточки страницы классного журнала   Редактирование клеточки страницы классного журнала  

0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 8
20.11.2016, 14:01 13
Дополнение:
немного исправил код, но теперь все поля и клеточки стали неактивными.
Привожу код:
PHP
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
function DayMonth($dt) {
//Преобразует строку yyyy-mm-dd -> dd/mm
//Используется функция substr, которая получает подстроку из строки
//Формат substr: (строка, начиная с, количество символов)
//Символы в строке индексируются с нуля
return substr($dt,8,2)."/".substr($dt,5,2);
}
$db = mysql_connect("localhost", "webuser", "123456789");
mysql_select_db("page");
mysql_query("SET NAMES 'utf8'", $db);
mysql_query("SET CHARACTER SET utf8", $db);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $db);
$result=mysql_query("SELECT student_id, name, surname FROM student ORDER BY surname, 
 
name");
 
//Запомним в массиве $students данные всех учеников
while ($arr=mysql_fetch_assoc($result)) $students[]=$arr;
 
$result=mysql_query("SELECT lesson_id, lesson_date, subject, hometask FROM lesson ORDER BY 
 
lesson_date");
 
//Запомним в массиве $lessons данные всех уроков
while ($arr=mysql_fetch_assoc($result)) $lessons[]=$arr;
 
//Выведем левую таблицу
echo "<table border='1' align='left'><tr>";
echo "<th>№</th><th>Фамилия, имя</th>";
 
//Выведем "шапку" таблицы -- даты уроков
foreach ($lessons as $lesson)
echo "<th>".DayMonth($lesson['lesson_date'])."</th>";
echo "</tr>";
 
//Выведем столбцы с номерами и фамилиями учеников
foreach ($students as $student) {
echo "<tr><td>".$student['student_id']."</td>";
echo "<td><i>".$student['surname']." ".$student['name']."</i></td>";
foreach ($lessons as $lesson) {
$st_id=$student['student_id'];
$l_id=$lesson['lesson_id'];
$td="&nbsp;"; //Предположим, что очередная ячейка пустая...
$result=mysql_query("SELECT * FROM absence WHERE student_id=$st_id AND lesson_id=$l_id");
 
//Если в таблице absence есть запись о пропуске -- поменяем значение $td
if (mysql_fetch_assoc($result)) $td="н";
else {
//Посмотрим, есть ли у данного ученика оценки за данный урок...
$result=mysql_query("SELECT grade FROM grade WHERE student_id=$st_id AND lesson_id=$l_id");
$delimit="";
while ($grade=mysql_fetch_assoc($result)) {
//Если оценки есть, накопим их в переменной $td
$td=$td.$delimit.$grade['grade'];
$delimit="/";
}
}
//И, наконец, выведем, что у нас накопилось в $td
echo "<td align='center'>$td</td>";
}
echo "</tr>";
}
echo "</table>";
//Выведем правую таблицу
echo "<table border='1' bgcolor='#EEEEEE'>";
echo "<tr><th>Дата</th><th>Тема урока</th><th>Домашнее задание</th></tr>";
foreach ($lessons as $lesson)
{
    echo '<tr>
            <td>'.DayMonth($lesson['lesson_date']).'</td>
            <td>'.$lesson['subject'].'</td>
            <td>'.$lesson['hometask'].'</td>
        </tr>';
}
echo "</table>";
?>
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
20.11.2016, 14:13 14
Работа с БД MySQL
Там есть все, что необходимо для исправления ваших ошибок.

Добавлено через 1 минуту
З.Ы.
Цитата Сообщение от elliot2 Посмотреть сообщение
PHP
1
2
3
mysql_query("SET NAMES 'utf8'", $db);
mysql_query("SET CHARACTER SET utf8", $db);
mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $db);
достаточно одной функции.
PHP
1
mysql_set_charset('utf8');
1
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
20.11.2016, 14:13 15
Цитата Сообщение от elliot2 Посмотреть сообщение
Люди добрые, уделите немного времени заблудшему
Первым делом я бы посоветовал забыть про эти курсы, т.к. им, судя по дате создания темы, уже больше 4 лет. Расширение mysql_ уже примерно тогда (или полугодием позже) начало считаться устаревшим. И уже в то время появилась рекомендация перехода на PDO или mysqli. Но раз уж вы забрели в эти дебри, давайте попробуем вывести вас из них. Первым делом проверьте соединение с БД и успешность выбора базы.
PHP
1
2
3
mysql_connect("localhost", "webuser", "123456789");
if(mysql_errno()) die(mysql_error());
mysql_select_db("page") or die(mysql_error());
1
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 8
20.11.2016, 14:36 16
Этот код следует использовать отдельно во вновь созданном файле или внедрить в файл edit.php?
0
Эксперт PHP
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
20.11.2016, 18:38 17
elliot2, заменить в своем коде строки с подключением и выбором БД на эти.
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 8
20.11.2016, 19:00 18
Заменил. Всё осталось неизменным, как на слайде "Страница классного журнала".
0
0 / 0 / 0
Регистрация: 28.02.2014
Сообщений: 8
22.11.2016, 23:23 19
Получается, что проблема не с базой данных?
0
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 6
06.02.2017, 11:05 20
Olesya_Zhukova, не могли бы мне тоже прислать итоговую работу? Моя почта: afonya777@list.ru Заранее спасибо)
0
06.02.2017, 11:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2017, 11:05
Помогаю со студенческими работами здесь

Пройдите в квадрате от клеточки 1 к клеточке 2 так, чтобы посетить все клеточки по одному разу
Пожалуйста прокомментируйте что делает каждая строчка этой программы! Пройдите в квадрате от...

Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии читателя
17.Сведения о выдаче экземпляра журнала читателю состоят из названия журнала, номера и фамилии...

Как получить данные из журнала IE, и в случае обнаружения там определенной страницы выполнить команду?
как получить данные из журнала ie и в случае обнаружения там определенной страницы выполнить...

Редактирование страницы
Добрый день. Делаю себе сайт под личные нужды, столкнулся с проблемой, хочу реализовать следующую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru