PHP.SU

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

Страниц (12): В начало « ... 4 5 6 7 [8] 9 10 11 12 »

> Найдено сообщений: 171
KuPbI4 Отправлено: 12 Декабря, 2010 - 19:22:17 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Сделал другим способом.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE VIEW `view_s` AS SELECT `status`.`id_books`, `status`.`id_users`, `users`.`fname`, `users`.`lname`, `users`.`otch`, `books`.`namebook`, `status`.`status_book`, `status`.`date_book`
  3. FROM `status`
  4. LEFT JOIN `users` ON `id_users` = `id_user`
  5. LEFT JOIN `books` ON `id_books` = `id_book`
  6.  

затем вызываю вьюшку

показывает то что нужно
а как вызвать пхп скрипте?! но там ниче не выводит
PHP:
скопировать код в буфер обмена
  1.  
  2. $i=0;
  3.         $query="select * from view_s";
  4.         $result=mysql_query($query);
  5.         if(mysql_error()) {
  6.                 echo mysql_error();
  7.         }
  8.         else {
  9.     while($row=mysql_fetch_row($result))
  10.         {
  11.             $i++;
  12.         }
  13.         }
  14.  

подскажите, что сделать нужно?!
KuPbI4 Отправлено: 12 Декабря, 2010 - 04:21:38 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
потом мне приходится вызвать процедуру через php-скрипт

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $i=0;
  4. $query="call proc()";
  5. $result=mysql_query($query);
  6. if(mysql_error()) {
  7.     echo mysql_error();
  8. } else {
  9.     while($row=mysql_fetch_row($result))
  10.         {
  11.             $i++;
  12.         }
  13. }
  14. ?>
  15.  

Выводит
Цитата:

Incorrect number of arguments for PROCEDURE bibl_system.proc; expected 8, got 0

пишет что некорректное число аргументов для процедуры бд.proc - ожидает 8 а получен 0
что здесь не так?! где исправить?

А если удалить процедуру
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DROP procedure `proc`
  3.  

и пересоздать
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE procedure `proc` ()
  3. SELECT id_books, id_users, fname, lname, otch, namebook, status_book, date_book
  4. FROM `status`
  5. LEFT JOIN users ON id_users = id_user
  6. LEFT JOIN books ON id_books = id_book
  7.  

то выводит
Цитата:

Thread stack overrun: 6436 bytes used of a 131072 byte stack, and 128000 bytes needed. Use 'mysqld -O thread_stack=#' to specify a bigger stack.

пишет что поток стеков переполнен

где могут быть ошибки?!
KuPbI4 Отправлено: 11 Декабря, 2010 - 22:28:19 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
JustUserR пишет:
Пожалуйста! В качестве допустимого варианта осуществляющего решения задач проведения операций с информационными полями на стороне сервера БД целесообразно использования определяемых пользовательсих SQL-процедур - они предоставляют возможность осуществления прозвольных операций с хранимыми данными без обеспечения необходимости их передачи на сервер приложений Более подробная информация по данному вопросу предоставлена здесь http://www[dot]firststeps[dot]ru/sql/oracle/r.php?92 и здесь http://www.intuit.ru/department/database/sql/12/


разобрался.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE procedure `proc` (
  3. out id_books integer(11),
  4. out id_users integer(11),
  5. out fname varchar(50),
  6. out lname varchar(50),
  7. out otch varchar(50),
  8. out namebook varchar(50),
  9. out status_book integer(11),
  10. out date_book varchar(50)
  11. )
  12. SELECT id_books, id_users, fname, lname, otch, namebook, status_book, date_book
  13. FROM `status`
  14. LEFT JOIN users ON id_users = id_user
  15. LEFT JOIN books ON id_books = id_book
  16.  
KuPbI4 Отправлено: 10 Декабря, 2010 - 14:00:13 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
JustUserR пишет:
В качестве возморжного варината эффектвного решения приведенной вами задачи допустимо создание пользовательской SQL-процедуры производящей соответствующую обработку на стороне БД - которая обеспечивает возможност непосредсвенного доступа к информационным полям а также позволяет проводить последовательное обращение к элементам

Спасибо за объяснение, но не понял. Лучше б показали кусок примера кода.
KuPbI4 Отправлено: 10 Декабря, 2010 - 13:20:33 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
PHP:
скопировать код в буфер обмена
  1.  
  2.  if (isset($_POST['submit'])){
  3.    
  4.    
  5.     $status_book = strip_tags(stripslashes(substr($_POST['status_book'],0,11)));
  6.    
  7.  
  8.         $query =  "INSERT INTO status (status_book, id_books, id_users) VALUES (1, '$id_books', '$id_users');";
  9.         if (mysql_query($query)) {
  10.                                         echo "Запись добавлена!<br>";
  11.                                         }
  12.                                         else {
  13.                                         echo "Запись не добавлена!<br>";
  14.                                         }
  15.         }
  16.  


Мне удалось только записать данные о статусе, а id_book и id_user не приложу ума как записать... кто мне подскажет..?
KuPbI4 Отправлено: 10 Декабря, 2010 - 05:01:13 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Понял теперь. Мне нужно было занести данные в таблицу status и написать этот запрос. Действительно получилось то, что я хотел.
Теперь вопрос:
Сначала приложу скрин.

Как мы видим на скрине, 3 доступных книги. И по-каждому кнопки - "Выбрать эту книгу".
Как реализовать, чтоб если нажать на кнопку и записать данные (статус_бук 1 - выбрана) в таблицу status из таблиц users и books (id_book, id_user)?
а затем по этому запросу получить данные в админке..
и следовательно в админке редактировать запись и добавить дату и переставить статус на 2 (выдача) какая книга выбрана, какой пользователь и когда выдана и когда будет возвращена...

Ну и на всякий случай приложу код каталога:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.  
  4. include ("admin/config.php");
  5.  
  6. $q = mysql_query("SELECT * FROM books");
  7. if(mysql_num_rows($q) > 0) {
  8.   $count = 3; //выводить по 3 записи
  9.   $posts = mysql_num_rows($q);
  10.   $total = ceil($posts / $count);
  11.   if(isset($_GET['page'])) $page = intval($_GET['page']); else $page = 1;
  12.   if($page > $total) $page = $total;
  13.   $from = $page * $count - $count;
  14.   $query = mysql_query("SELECT * FROM books ORDER BY id_book LIMIT $from,$count");
  15.   $page = ($page <= 0) ? 1 : $page;
  16.   $seperator = '&nbsp;';
  17.   $page_string = ($page == 1) ? '<strong>1</strong>' : '<a href="catalog.php">1</a>';
  18.   $page_string .= $seperator;
  19.   for ($i = 2; $i < $total; $i++) {
  20.     $page_string .= ($i == $page) ? '<strong>' . $i . '</strong>' : '<a href="catalog.php?page=' . $i . '">' . $i . '</a>';
  21.       if ($i < $total) {
  22.         $page_string .= $seperator;
  23.       }
  24.   }
  25.   $page_string .= ($page == $total) ? '<strong>' . $total . '</strong>' : '<a href="catalog.php?page=' . $total . '">' . $total . '</a>';
  26.   while($b = mysql_fetch_array($query)) {
  27.     echo "
  28.   <table align='center' class='katal'>
  29.   <tr>
  30.   <td colspan='2' class='katal_title'>
  31.   <a href='catalog_view.php?id_book=$b[id_book]&ref=$page'>
  32.   <p class='katalog'>Название книги: $b[namebook]</p>
  33.   </a>
  34.   </td>
  35.   </tr>
  36.   <tr>
  37.   <td width='345px'>
  38.   <p>Список авторов: $b[authors]</p>
  39.   <p>Год издания: $b[year]</p>
  40.   <p>Место издания: $b[mesto]</p>
  41.   <p>Название издательства: $b[nameizd]</p>
  42.   <br>
  43.   <center>
  44.   <form action='catalog.php' method=post>
  45.   <input type='submit' name='submit' value='Выбрать эту книгу'/>
  46.   </select>
  47.   </form>
  48.   </center>
  49.   </td>
  50.   </tr>
  51.   </table>
  52.   ";
  53.   }
  54.   if($total != 1) {
  55.     echo "<br>Страницы: " . $page_string;
  56.   }
  57.   echo "<br><br>Всего в каталоге: ".$posts." <b>книг</b><br>";
  58. } else { echo "Книг <b>нет в библиотеке</b><br>"; }
  59.  
  60. //скрипт отправления заявки (но она не работает!)
  61. if (isset($_POST['submit'])){
  62.  
  63. $id_book = strip_tags(stripslashes(substr($_POST['id_book'],0,11)));
  64. $id_user = strip_tags(stripslashes(substr($_POST['id_user'],0,11)));
  65.  
  66. mysql_query("INSERT INTO status (id, id_books, id_users ) VALUES ('1', '$id_book', '$id_user')");
  67. $query = mysql_query("Вы выбрали эту книгу!");
  68.  
  69. }
  70. ?>
  71.  

скрипт отправления заявки не работает...ничего не происходит
KuPbI4 Отправлено: 10 Декабря, 2010 - 02:21:51 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Мелкий пишет:
0) http://php.su/mysql/?functions

читал. пробовал. ничего не выводит.
Мелкий пишет:
1)
KuPbI4 пишет:
то выводит empty row

значит, запрос не вернул ни одной строки, ни одна не подпала под все условия.

в пхпмайадмине
Цитата:

MySQL returned an empty result set (i.e. zero rows).


значит, мне все таки снова сформулировать запрос?!
KuPbI4 Отправлено: 10 Декабря, 2010 - 01:16:10 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
и каким образом могу получить результаты, если в phpmyadmin'e ввел этот запрос, то выводит empty row и запрос прошел успешно но данные не выводятся... или мне это приходится скрипт написать что клиент добавил книгу или как?
KuPbI4 Отправлено: 10 Декабря, 2010 - 00:34:32 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
если написать
PHP:
скопировать код в буфер обмена
  1.  
  2. $sql = "SELECT id_books, id_users, fname, lname, otch, namebook, status_book
  3. FROM `status`
  4. LEFT JOIN users ON id_users = id_user
  5. LEFT JOIN books ON id_books = id_book ";
  6. $result=mysql_query($sql);
  7. var_dump($result)
  8.  

то выводит
Цитата:

resource(7) of type (mysql result)

Что это бы значило?
и пробовал запрос
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT id_books, id_users, fname, lname, otch, namebook, status_book
  3. FROM `status`
  4. LEFT JOIN users ON id_users = id_user
  5. LEFT JOIN books ON id_books = id_book
  6.  

толку никакого нет,хотя данные есть в таблицах users и books
KuPbI4 Отправлено: 09 Декабря, 2010 - 23:49:32 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Так получается запрос?
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT id_books, id_users, fname, lname, otch, namebook, status_book
  2. FROM STATUS
  3. LEFT JOIN users ON id_users = id_user
  4. LEFT JOIN books ON id_books = id_book

а в ответе - пустые данные, что здесь не так?!
хотя данные есть в таблицах users и books и заполнены.
KuPbI4 Отправлено: 09 Декабря, 2010 - 17:33:08 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Я что-то запутался с связыванием таблиц....
никак не могу нормально сообразить!
KuPbI4 Отправлено: 09 Декабря, 2010 - 03:08:24 • Тема: Заказ книг в библиотеке (выдача и возврат) • Форум: Программирование на PHP

Ответов: 48
Просмотров: 2734
Всех приветствую..
Задача такова:
PHP cкрипт заказа книги в библиотеке, чтоб клиент мог заказать в электронной библиотечной системы, после того клиент идет в библиотеке, библиотекарь выдает книгу и когда будет возращена книга и ставит статус выдана книга, но при этом уменьшится кол-во книг на данный момент. Думаю, я правильно объяснил задачу. (Если не правильно объяснил, то проблемы с логикой скорее всего).
Дальше:
Что у нас дано, дано 3 таблицы (пользователь, книга, статус)
Книга (опишу с комментариями)
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE `books`(
  3. `id_book` int( 11 ) NOT NULL AUTO_INCREMENT,
  4. `namebook` varchar( 255 ) NOT NULL,
  5. `authors` varchar( 255 ) NOT NULL,
  6. `shifr` varchar( 255 ) NOT NULL,
  7. `year` int( 11 ) NOT NULL,
  8. `mesto` varchar( 255 ) NOT NULL,
  9. `nameizd` varchar( 255 ) NOT NULL,
  10. `kol_ekz_b` int( 11 ) NOT NULL,
  11. `kol_ekz_online` int( 11 ) NOT NULL,
  12. PRIMARY KEY `id_book`(`id_book`)
  13. ) TYPE=MyISAM AUTO_INCREMENT=1;
  14.  

Пользователь:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE `users` (
  3.   `id_user` int(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  4.   `login` varchar(50) NOT NULL DEFAULT '',
  5.   `password` varchar(32) NOT NULL DEFAULT '',
  6.   `salt` char(3) NOT NULL DEFAULT '',
  7.   `fname` varchar(50) NOT NULL DEFAULT '',
  8.   `lname` varchar(50) NOT NULL DEFAULT '',
  9.   `otch`  varchar(50) NOT NULL DEFAULT '',
  10.   `bnumber` varchar(20) NOT NULL DEFAULT '',
  11.   `datab` varchar(20) NOT NULL DEFAULT '',
  12.   `srokb` varchar(20) NOT NULL DEFAULT '',
  13.   PRIMARY KEY  (`id_user`),
  14.   UNIQUE KEY `login` (`login`)
  15. ) TYPE=MyISAM AUTO_INCREMENT=2 ;;
  16.  

И Статус выдачи и возвращения:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE `status` (
  3. `status_book` INT( 8 ) NOT NULL AUTO_INCREMENT ,
  4. `id_book` INT( 8 ) NOT NULL ,
  5. `id_user` INT( 8 ) NOT NULL ,
  6. `date_book` VARCHAR( 50 ) NOT NULL,
  7.  PRIMARY KEY  (`status_book`)
  8. ) TYPE=MyISAM AUTO_INCREMENT=1
  9.  

Прилагаю скрин каталога, что хотелось мне увидеть:

Вопросы:
1. Как мне связать все эти две таблицы в таблицу статус, чтоб вывелась информация?
2. Как отправить заказ в БД и чтоб в админке вывелась информация, что ЭТОТ клиент хочет взять книги?
3. Как сделать подробную информацию о пользователе что книга получена именно ЭТОТ клиент?
Я понимаю, что очень много вопросов задаю.. Я не хочу других скриптов смотреть и переделывать.
Если Вы что то не поняли, или я гдето может ошибся, что я тут написал, постараюсь четко и внятно ответить!
Заранее Вам ОГРОМНОЕ спасибо, я надеюсь, что Вы мне подскажете, что и как!
KuPbI4 Отправлено: 08 Декабря, 2010 - 12:19:58 • Тема: Простая поисковая система (PHP + MySQL) • Форум: Программирование на PHP

Ответов: 14
Просмотров: 1108
Uchkuma пишет:
Лично я не вижу тут такой задачи.
С поиском по названию все понятно, но шифр-то должен указывать на конкретную книгу. Кто, зная шифр книги, будет искать ее, скажем, по части шифра из середины? И самое главное ЗАЧЕМ?

Все еще спрашиваете ЗАЧЕМ?! Улыбка
Uchkuma пишет:

Если при поиске по названию будут найдены книги с похожими названиями, то по части шифра будут найдены совершенно разные книги, не имеющие ничего общего между собой.

Тут вы правы.
Uchkuma пишет:

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

Ну мне тут придется еще работать с заказом... то есть зарегистрированный пользователь выбрал эту книгу.. статус - скажем,так Выбрана эта книга. Идет в библиотеку - библиотекарь выдает - и статус ставит - Выдана книга в такое-то - такое-то время и когда будет возвращена. Когда книга будет возвращена, то статус меняется на возвращена, но при этом запись не удаляется.
Тут мне придется посложнее думать. Придется связывать таблицы?
Ну то есть
вот скажем:
таблица пользователь(фамилия, имя, отчество, библ_номер, дата_выдачи_библ_номера, срок_действия_библ_номера),
таблица Книги (название_книги, список_авторов, Библиотечный_шифр, Год_и место_издания, Название_издательства, Общее_кол-во_экземпляров_книги,Кол-во_ экземпляров_доступных_в_текущий момент)
таблица статус (фамилия, имя, отчество, выдана_эта_книга, когда_выдана, когда_будет_возвращена, возвращена_эта книга)
Описал таблицы, как все таки правильно реализовать оформление заказа выдачи книги и возвращения? и как правильно связать таблицы?
KuPbI4 Отправлено: 08 Декабря, 2010 - 03:52:56 • Тема: Простая поисковая система (PHP + MySQL) • Форум: Программирование на PHP

Ответов: 14
Просмотров: 1108
Вы конечно правы, что я создал тему, потеряв себя, что не знаю. А потом пришло время и подумав и уверенно мыслив, вроде правильно написал код или нет.)
KuPbI4 Отправлено: 08 Декабря, 2010 - 01:37:42 • Тема: Простая поисковая система (PHP + MySQL) • Форум: Программирование на PHP

Ответов: 14
Просмотров: 1108
Uchkuma пишет:
Может я что-то не понял, но зачем искать книгу по фрагменту библиотечного шифра?

Такова задача поставлена.

Страниц (12): В начало « ... 4 5 6 7 [8] 9 10 11 12 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB