Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите разобраться

 PHP.SU

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


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

> Описание: mysql php/база данных/
supervalenok
Отправлено: 19 Мая, 2011 - 15:26:09
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




Нужно решить задачу
дано:
Существует таблица, в которой хранятся записи о неких событиях (например, сеансах кинофильмов в кинотеатре). Необходимо написать код, который выводил бы на экран все события, которые происходят (уже начались, но ещё не закончились) в промежутке времени между 10.04.2010 - 12.05.2010. Данные в таблице описаны следующими полями:
id int not null primary key
name text
begin_date datetime // дата начала события
end_date datetime // дата окончания события

я в базе прописал следущее (название файла film.sql)
/*
Navicat MySQL Data Transfer

Source Server : localhost
Source Server Version : 50140
Source Host : localhost:3306
Source Database : videofilm

Target Server Type : MYSQL
Target Server Version : 50140
File Encoding : 65001

Date: 2011-05-18 19:18:22
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `film`
-- ----------------------------
DROP TABLE IF EXISTS `film`;
CREATE TABLE `film` (
`id` int(11) NOT NULL DEFAULT '0',
`name` text NOT NULL,
`begin_date datetime` date NOT NULL,
`end_date datetime` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

-- ----------------------------
-- Records of film
-- ----------------------------
INSERT INTO `film` VALUES ('1', 'спартанцы', '2010-04-10', '2010-05-12');
INSERT INTO `film` VALUES ('2', 'стрекозец', '2010-05-10', '2010-05-01');
INSERT INTO `film` VALUES ('3', 'гладиатор', '2021-07-12', '2010-05-02');
INSERT INTO `film` VALUES ('4', 'непобедимый', '2010-05-01', '2010-05-03');
INSERT INTO `film` VALUES ('5', 'менты', '2010-04-02', '2010-05-04');



файл обрабатывающий базу данных film.sql называется bazadannix.php

в нем я прописал

<?php
$db = mysql_connect ("localhost","root","");
mysql_select_db ("video",$db);
$f = mysql_query("SELECT * FROM film '",$db);

$rows = mysql_num_rows($f);
$fields = mysql_num_fields($f);

echo "<pre>";
for ($c=0; $c<$rows; $c++) {
for ($cc=0; $cc<$fields; $cc++) {
echo mysql_result($f, $c, $cc)."\t";
echo "\n";
}
}
echo "</pre>";
?>


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

вот эту строку всю перепробывал переделывать $f = mysql_query("SELECT * FROM film '",$db);
выдает либо ошибка либо ничего не выдает.
 
 Top
Alex_pac
Отправлено: 19 Мая, 2011 - 20:08:14
Post Id



Новичок


Покинул форум
Сообщений всего: 41
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




1) напишите адекватный запрос типа вот такого:

CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM film WHERE `begin_date datetime` <= CURDATE() AND `end_date datetime` >= CURDATE()


2) проверьте его через php_my_admin

3) и только после этого нишите php скрипт, будучи 100% уверенным что запрос верный и все должно выводитьсяъ
и еще погуглите или тут почитайте как выводить из базы данные

PHP:
скопировать код в буфер обмена
  1. $db = mysql_connect ("localhost","root","");
  2. mysql_select_db ('video',$db);
  3. $res = mysql_query("SELECT * FROM film WHERE `begin_date datetime` <= CURDATE() AND `end_date datetime` >= CURDATE()",$db);
  4.  
  5. echo '<pre>';
  6. while ($row=mysql_fetch_row($res)) {
  7.         foreach($row as $col) {
  8.                 print $col.' | ';
  9.         }
  10.         print "\n";
  11. }
 
 Top
supervalenok
Отправлено: 21 Мая, 2011 - 12:28:33
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Май 2011  


Помог: 0 раз(а)




спасибо
но у меня конкретная задача

Нужно решить задачу
дано:
Существует таблица, в которой хранятся записи о неких событиях (например, сеансах кинофильмов в кинотеатре). Необходимо написать код, который выводил бы на экран все события, которые происходят (уже начались, но ещё не закончились) в промежутке времени между 10.04.2010 - 12.05.2010.
 
 Top
molchun201
Отправлено: 21 Мая, 2011 - 13:04:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 295
Дата рег-ции: Февр. 2011  
Откуда: Менеск


Помог: 5 раз(а)




supervalenok пишет:
в промежутке времени

BETWEEN


-----
Обрамляйте код тегами и читайте
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB