PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 13
supernick Отправлено: 21 Октября, 2014 - 15:07:34 • Тема: Объединить данные из нормализованных таблиц • Форум: Вопросы новичков

Ответов: 3
Просмотров: 138
Мелкий пишет:
join, как обычно.

А можно пример кода?
supernick Отправлено: 21 Октября, 2014 - 14:48:14 • Тема: Объединить данные из нормализованных таблиц • Форум: Вопросы новичков

Ответов: 3
Просмотров: 138
Здравствуйте. У меня есть две таблицы orders(id, user, item, date) и users(login, name, password, addres). В таблице orders в поле user указан идентификатор пользователя. Необходимо описать метод класса, который будет получать все заказы данного пользователя из таблицы orders заменяя идентификатор пользователя на данные о нем из таблицы users и возвращать готовый массив на вывод. Какими способами это можно сделать?
supernick Отправлено: 20 Октября, 2014 - 14:36:04 • Тема: Модифицировать метод класса • Форум: Вопросы новичков

Ответов: 2
Просмотров: 131
RickMan пишет:
Во первых тут странно:

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

PHP:
скопировать код в буфер обмена
<?PHP
        if (isset($_POST['submit_search'])) {$submit_search = $_POST['submit_search'];}
        if (isset($_POST['search'])) {$search = $_POST['search'];}
        if (isset($submit_search) && $submit_search!='')
        {              
                                $search = trim($search);      
                                $search = stripslashes($search);
                                $search = htmlspecialchars($search);
        }
        else {echo'<script type="text/javascript">window.location = "index.php"</script>';};
        $books = new book; $array = $books->view_search($search); ?>
        <div id="content">
        <?PHP if (empty($array)): ?>
           КАКОЙ-ТО ВАШ ТЕКСТ
        <?PHP else: ?>
        <?PHP foreach ($array as $book) { ?>
                <div id="show_books" class="color">              
                <img class="book_cover" src="<?=$book['cover']?>" alt="Обложка книги" width="140">
                <p class="name"><?=$book['author']." | ".$book['name']." | ".$book['izdatel']." | ".$book['date']?></p>
                <p class="descripton"><?=$book['description']?></p>
                </div>
        <?PHP } ?>
        <?PHP endif; ?>
        </div>


Странно. Я тоже подумал, что массив будет пустым, поэтому проверял его точно таким же образом, но в итоге получал лишь предупреждение. А в вашем примере все работает так, как нужно. Спасибо
supernick Отправлено: 20 Октября, 2014 - 13:53:08 • Тема: Модифицировать метод класса • Форум: Вопросы новичков

Ответов: 2
Просмотров: 131
Здравствуйте. Описал метод класса для поиска по базе данных таким образом
PHP:
скопировать код в буфер обмена
  1.  
  2. public function view_search($search)
  3.                 {
  4.                         $result = mysql_query("SELECT * FROM books WHERE author LIKE '%".$search."%' OR name LIKE '%".$search."%' OR genre LIKE '%".$search."%' OR izdatel LIKE '%".$search."%'") or die("Ошибка в запросе к базе данных: ".mysql_error());
  5.                         $arr = array();
  6.                         while ($row = mysql_fetch_assoc($result))
  7.                         {
  8.                                 $arr[] = $row;
  9.                        
  10.                         return $arr;
  11.                         }
  12.                 }
  13.  

Вызываю его так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.         if (isset($_POST['submit_search'])) {$submit_search = $_POST['submit_search'];}
  4.         if (isset($_POST['search'])) {$search = $_POST['search'];}
  5.         if (isset($submit_search) && $submit_search!='')
  6.         {              
  7.                                 $search = trim($search);       
  8.                                 $search = stripslashes($search);
  9.                                 $search = htmlspecialchars($search);
  10.         }
  11.         else {echo'<script type="text/javascript">window.location = "index.php"</script>';};
  12.         $books = new book; $array = $books->view_search($search); ?>
  13.         <div id="content">
  14.         <?php foreach ($array as $book) { ?>
  15.                 <div id="show_books" class="color">              
  16.                 <img class="book_cover" src="<?=$book['cover']?>" alt="Обложка книги" width="140">
  17.                 <p class="name"><?=$book['author']." | ".$book['name']." | ".$book['izdatel']." | ".$book['date']?></p>
  18.                 <p class="descripton"><?=$book['description']?></p>
  19.                 </div>
  20.         <?php } ?>
  21.                
  22.         </div>
  23.  

Может я что-то делаю не слишком правильно, но все работает прекрасно. Необходимо модифицировать код таким образом, чтобы в случае отсутствия совпадений при поиске выводилось соответствующее сообщение или происходило перенаправление на главную страницу. У самого никак не получается.
supernick Отправлено: 19 Октября, 2014 - 13:21:34 • Тема: Работа с классами • Форум: Вопросы новичков

Ответов: 6
Просмотров: 303
Здравствуйте. По требованию преподавателей потихоньку постигаю ООП в PHP. Есть такая задача, нужно вытянуть данные о пользователе из базы, такие как ник, ФИО, адрес электронной почты, дата регистрации и запихнуть это все к класс user. Ну а потом уже выводить информацию в нужном месте используя класс. Почему не вывести данные сразу из базы даже не спрашивайте - так заставили. Так вот подскажите как лучше, проще и удобнее это реализовать? Перебрал несколько книг касательно ООП в php, так там авторы такой непонятный бред пишут. Кстати, данные из базы планировал доставать отдельно написанной функцией. Это нормально или по правилам нужно описывать метод в самом классе? В общем, подскажите, как это можно провернуть, желательно с примерами кода.
supernick Отправлено: 21 Августа, 2014 - 10:23:16 • Тема: Классы • Форум: Объектно-ориентированное программирование

Ответов: 0
Просмотров: 708
Здравствуйте. Нужно написать работу с применением ООП. Сайт библиотеки должен иметь следующие возможности:
1. Просмотр каталогов книг
2. Поиск необходимой литературы по сайту.
3. Возможность "взять" книгу.
4. Возможность "вернуть" книгу.
5. Возможность добавления новых книг и удаления старых.
6. Возможность добавления новых пользователей и удаления старых.
7. Возможность просмотра пользователем списка книг, которые он взял.
В проекте должно использоваться 3 группы пользователей: обычные пользователи, администраторы и модераторы.
Помогите определиться с тем, какое количество классов необходимо для такого проекта и какими они должны быть. Сначала я подумал, что классов должно быть 3: класс пользователя с параметрами id, логин, пароль, группа; класс книги с параметрами название, автор, издатель, год издания, количество экземпляров; и класс заказов с параметрами id пользователя, id книги, дата заказа, время возврата книги. Но, например, при добавлении нового пользователя будут указываться такие данные, как имя, фамилия, адрес проживания. Нужно ли в таком случае создавать еще класс "нового пользователя" или это уже лишнее? Необходимо ли добавить еще какие-либо классы? Я совсем новичек в веб-программировании, лекций по вебу у нас не было, так что прошу отнестись с пониманием к моим глупым вопросам.
supernick Отправлено: 05 Августа, 2014 - 18:10:28 • Тема: Шаблонизатор • Форум: Вопросы новичков

Ответов: 3
Просмотров: 208
Здравствуйте. Хотел бы попросить у Вас помощи: посоветуйте литературу и статьи по написанию шаблонов. Чем подробнее, тем лучше. Примеры приветствуются. Интересует все: как правильно писать шаблон html, как писать шаблонизатор или код php чтобы без проблем связать его с шаблоном, как правильно их связывать вообще. Лично для меня вообще остается загадкой, как можно наглухо разделить php и html, особенно в отношении таблиц с данными. Прошу прощения, если вопрос задан не в том разделе. На мой взгляд он одинаково равно затрагивает и php и html.
supernick Отправлено: 31 Июля, 2014 - 21:14:04 • Тема: Сессии • Форум: Вопросы новичков

Ответов: 2
Просмотров: 125
Здравствуйте. Реализовал систему регистрации на сайте. Пользователь должен авторизоваться, после чего может совершать какие-либо действия на сайте. После организовал блок администратора и тут появилась проблема-вопрос: если пользователь, будучи авторизованным, перейдет на страницу администратора, то, естественно, сможет выполнять действия от лица администратора. Как лучше следует организовать проверку на то, является ли пользователь администратором? Для администраторов просто планирую сделать отдельную таблицу в базе и не присваивать пользователям категории типа "администратор" и "пользователь" в основной таблице. Возможно ли делать проверку на уровне сессии? Примеры кода очень желательны.
supernick Отправлено: 30 Июля, 2014 - 17:48:05 • Тема: Запросы к нескольким таблицам • Форум: Вопросы новичков

Ответов: 10
Просмотров: 385
Tyoma5891 пишет:
а зачем Вы разделяете на четные и нечетное записи к тому же ещё и неправильно это условие if ($i % 2 == 1) будет работать только для $i = 5 и все)) все остальное попадет в елсе, а если у Вас там только до 4 записей то выведется всего лишь одно все правильно)

Я делю из затем, чтобы раскрасить записи таблички, которая получается во время вывода, в разные цвета, для более удобного чтения. У меня в таблице 12 элементов и условие прекрасно работает.
supernick Отправлено: 30 Июля, 2014 - 17:13:24 • Тема: Запросы к нескольким таблицам • Форум: Вопросы новичков

Ответов: 10
Просмотров: 385
Все верно. Я хочу вытянуть заказы относительно пользователя из таблицы vid и при выводе заменить id книги на данные об этой книге из таблицы books. Код работает, но выдача ограничивается первой попавшейся книгой из таблицы заказов. А мне нужно, чтобы выводились все заказанные книги.
supernick Отправлено: 30 Июля, 2014 - 16:34:08 • Тема: Запросы к нескольким таблицам • Форум: Вопросы новичков

Ответов: 10
Просмотров: 385
Tyoma5891 пишет:
и что же Вы в этом запросе пытаетесь получить? что у Вас в поле id находится?

id книги там находится. Мне нужно вытащить данные по определенным книгам из таблицы с книгами. А запрос должен основываться на id пользователя, который хранится в сессии и id книги из таблицы с заказами. В моем запросе выводится только первая книга, если их несколько. А я хочу вытащить их все.
(Добавление)
esterio пишет:
И здесь товарищ Жопов
Культурного человека сразу видно. И автор статьи не отстает. Но за замечание, спасибо. Хочу научиться писать код максимально эффективно, так что приму к сведению.
supernick Отправлено: 30 Июля, 2014 - 16:11:47 • Тема: Запросы к нескольким таблицам • Форум: Вопросы новичков

Ответов: 10
Просмотров: 385
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP include_once("db.php"); ?>
  3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  7. <title>Мои книги</title>
  8. <link href="style.css" rel="stylesheet" type="text/css">
  9. </head>
  10.  
  11. <body>
  12. <?PHP
  13.                 $result2 = mysql_query ("SELECT * FROM vid WHERE user = '$id_user'",$link) or die(mysql_error());
  14.                 $myrow2 = mysql_fetch_array($result2) or die(mysql_error());
  15.                 $book = $myrow2['book'];
  16.                 $result = mysql_query ("SELECT id,author,name,genre,izdatel,date FROM books WHERE id = '$book'",$link) or die(mysql_error());
  17.                 $myrow = mysql_fetch_array($result) or die(mysql_error());
  18.                
  19.                 echo '<table id="view_table">';
  20.                 echo '<thead>';
  21.                 echo '<tr id="zagolovok">';
  22.                 echo '<th>Автор</th>';
  23.                 echo '<th>Книга</th>';
  24.                 echo '<th>Жанр</th>';
  25.                 echo '<th>Издатель</th>';
  26.                 echo '<th>Дата издания</th>';
  27.                 echo '<th>&nbsp;</th>';
  28.                 echo '</tr>';
  29.                 echo '</thead>';
  30.                 echo '<tbody>';
  31.                 $i=0;
  32.                 do
  33.                 {
  34.                         $i++;
  35.                         if ($i % 2 == 1)
  36.                         {
  37.                         echo '<tr id="stroka1">';
  38.                         echo '<td>' . $myrow['author'] . '</td>';
  39.                         echo '<td>' . $myrow['name'] . '</td>';
  40.                         echo '<td>' . $myrow['genre'] . '</td>';
  41.                                 echo '<td>' . $myrow['izdatel'] . '</td>';
  42.                                 echo '<td>' . $myrow['date'] . '</td>';
  43.                                 printf('<td> <a href="del.php?id=%s">Удалить</a>',$myrow['id'],'</td>');
  44.                         echo '</tr>';
  45.                         }
  46.                         else
  47.                         {
  48.                                 echo '<tr id="stroka2">';
  49.                         echo '<td>' . $myrow['author'] . '</td>';
  50.                         echo '<td>' . $myrow['name'] . '</td>';
  51.                         echo '<td>' . $myrow['genre'] . '</td>';
  52.                                 echo '<td>' . $myrow['izdatel'] . '</td>';
  53.                                 echo '<td>' . $myrow['date'] . '</td>';
  54.                                 printf('<td> <a href="del.php?id=%s">Удалить</a>',$myrow['id'],'</td>');
  55.                         echo '</tr>';
  56.                         }
  57.                  }
  58.         while($myrow = mysql_fetch_array($result));
  59.         echo '</tbody>';
  60.                 echo '</table>';
  61.  
  62.  
  63.         ?>
  64.     <form action="view_search.php" method="post" name="poisk">
  65.         <input name="search" type="text" size="30">
  66.         <input name="submit_search" type="submit" value="Искать">
  67.     </form>
  68. </body>
  69. </html>
  70.  
supernick Отправлено: 30 Июля, 2014 - 15:22:11 • Тема: Запросы к нескольким таблицам • Форум: Вопросы новичков

Ответов: 10
Просмотров: 385
Здравствуйте. Есть такой вопрос. У меня существуют две таблицы с данными: первая таблица предназначена для заказов и состоит из разных полей, но нужными являются только поля с id пользователя и id книги. Вторая таблица содержит информацию о самих книгах, в числе полей которой, разумеется, есть и id книги. Мне необходимо вывести книги, заказанные конкретным пользователем. Сделать я это хочу путем вытягивания всех заказов с id данного пользователя и основываясь на id книги выводить информацию по ней уже из таблицы с к книгами. При таком запросе мне, конечно, выводится только первая встречающаяся книга пользователе в таблице заказов:
PHP:
скопировать код в буфер обмена
  1.  
  2. $result2 = mysql_query ("SELECT * FROM vid WHERE user = '$id_user'",$link) or die(mysql_error());
  3.                 $myrow2 = mysql_fetch_array($result2) or die(mysql_error());
  4.                 $book = $myrow2['book'];
  5.                 $result = mysql_query ("SELECT id,author,name,genre,izdatel,date FROM books WHERE id = '$book'",$link) or die(mysql_error());
  6.                 $myrow = mysql_fetch_array($result) or die(mysql_error());
  7.  

Как мне нужно модифицировать цикл или сам запрос, чтобы выводить все книги, встречающиеся в таблице заказов? Вывожу обычным

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB