[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из формы
Tori
Помогите вывести данные из формы, а то у меня либо пустая страница выходит, либо какие-то закорючки и ошибки пишет. Как правильно объединить эти файлы?
user posted image
Файл html формы
<html>
<head><title>
Каталог ПО</title></head>
<form
action="1.php" method=POST>
<H4>
Поиск по названию</H4>
<input
type=text name="name">
<H4><P>
Выберите категорию:<BR></H4>
<input
type=checkbox name='category[]'
value='internet'>internet<br>
<input
type=checkbox name='category[]'
value='multimedia'>multimedia<br>
<input
type=checkbox name='category[]'
value='discs & files'>discs & files<br>
<BR>
<input
type=checkbox name='k[]'
value='top'>TOP 10<br>
<BR>
<input
type=submit value="Отправить">
<input
type=reset value="Отменить">
</form>
</html>

Файл data.inc
Skype                 ||| 10 ||| Интернет
BitTorrent ||| 3 ||| Интернет
Opera ||| 4 ||| Интернет
Adobe Flash Player ||| 8 ||| Интернет
AOL Instant Messenger ||| 3 ||| Интернет
Nero ||| 5 ||| Мультимедиа
KMPlayer ||| 7 ||| Мультимедиа
Media Player Classic ||| 6 ||| Мультимедиа
jetAudio Basic ||| 2 ||| Мультимедиа
SpeedBit Video Accelerator ||| 1 ||| Мультимедиа
WinRAR ||| 5 ||| Диски и файлы
Daemon Tools ||| 7 ||| Диски и файлы
Alcohol 120% ||| 4 ||| Диски и файлы
Defraggler ||| 6 ||| Диски и файлы

Файл index.php
<?php

function
func_sort_top10($element1, $element2)
{
if( $element1[1] == $element2[1] ) return 0;
return $element1[1] < $element2[1] ? 1 : -1;
}

// инициализация
$programms = array(); // массив программ
$programms_strings = array(); // массив строк из файла с программами
$top10 = array(); // массив топ10 программ
$cats = array(); // массив категорий

// получаем список всех программ из файла

$programms_strings = file("data.inc");
foreach($programms_strings as $programm)
$programms[] = explode(" ||| ", trim($programm));

// получаем список топ10 программ
$top10 = $programms;
uasort($top10, "func_sort_top10");
$top10 = array_slice($top10, 0, 10);

// получаем список категорий
foreach($programms as $programm)
if( !in_array($programm[2], $cats) )
$cats[$programm[2]] = array();
// сортируем список категорий
ksort($cats);

// рассовываем программы по категориям
foreach($programms as $programm)
$cats[$programm[2]][] = $programm;

// выводим топ10
echo "<h1>Список топ-10</h1>";
echo "<table cellpadding='5' border='1'><tr><td>Название программы</td><td>Рейтинг</td><td>Категория</td></tr>";
foreach($top10 as $top)
echo "<tr><td>{$top[0]}</td><td>{$top[1]}</td><td>{$top[2]}</td></tr>";
echo "</table>";

// выводим список программ по категориям
// выводим топ10

echo "<h1>Все программы по категориям</h1>";
echo "<table cellpadding='5' border='1'><tr><td>Название программы</td><td>Рейтинг</td></tr>";
foreach($cats as $key => $cat)
{
echo "<tr><td colspan='2'>{$key}</td></tr>";
foreach($cat as $programm)
echo "<tr><td>{$programm[0]}</td><td>{$programm[1]}</td></tr>";
}
echo "</table>";
?>




Спустя 20 минут, 33 секунды (13.11.2010 - 15:32) inpost написал(а):
Tori
А почему бы просто не хранить это всё в БД?

Спустя 9 минут, 16 секунд (13.11.2010 - 15:42) Tori написал(а):
Ну БД у меня есть. А как из БД вывести?

DROP DATABASE IF EXISTS `mag2010-4300`;
CREATE DATABASE `mag2010-4300`;
USE `mag2010-4300`;

CREATE TABLE `cats` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`category` varchar(11) NOT NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;

INSERT INTO `cats` VALUES (1,'internet');
INSERT INTO `cats` VALUES (2,'internet');
INSERT INTO `cats` VALUES (3,'internet');
INSERT INTO `cats` VALUES (4,'internet');
INSERT INTO `cats` VALUES (5,'internet');
INSERT INTO `cats` VALUES (6,'multimedia');
INSERT INTO `cats` VALUES (7,'multimedia');
INSERT INTO `cats` VALUES (8,'multimedia');
INSERT INTO `cats` VALUES (9,'multimedia');
INSERT INTO `cats` VALUES (10,'multimedia');
INSERT INTO `cats` VALUES (11,'discs&files');
INSERT INTO `cats` VALUES (12,'discs&files');
INSERT INTO `cats` VALUES (13,'discs&files');
INSERT INTO `cats` VALUES (14,'discs&files');

CREATE TABLE `programm` (
`Id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) NOT NULL,
`reiting` int(2) NOT NULL DEFAULT '0',
PRIMARY KEY (`Id`)
) TYPE=MyISAM;

INSERT INTO `programm` VALUES (1,'Skype',10);
INSERT INTO `programm` VALUES (2,'BitTorrent',3);
INSERT INTO `programm` VALUES (3,'Opera',4);
INSERT INTO `programm` VALUES (4,'Adobe Flash Player',8);
INSERT INTO `programm` VALUES (5,'AOL Instant Messenge',3);
INSERT INTO `programm` VALUES (6,'Nero',5);
INSERT INTO `programm` VALUES (7,'KMPlayer',7);
INSERT INTO `programm` VALUES (8,'Media Player Classic',6);
INSERT INTO `programm` VALUES (9,'jetAudio Basic',2);
INSERT INTO `programm` VALUES (10,'SpeedBit Video Accel',1);
INSERT INTO `programm` VALUES (11,'WinRAR',5);
INSERT INTO `programm` VALUES (12,'Daemon Tools',7);
INSERT INTO `programm` VALUES (13,'Alcohol 120%',4);
INSERT INTO `programm` VALUES (14,'Defraggler',6);

CREATE TABLE `maker` (
`Id` int(2) NOT NULL DEFAULT '0',
`producer` varchar(30) NOT NULL,
PRIMARY KEY (`Id`)
) TYPE=MyISAM;

INSERT INTO `maker` VALUES (1,'Skype Technologies');
INSERT INTO `maker` VALUES (2,'BitTorrent, Inc.');
INSERT INTO `maker` VALUES (3,'Opera Software');
INSERT INTO `maker` VALUES (4,'Adobe Systems Incorp');
INSERT INTO `maker` VALUES (5,'AOL');
INSERT INTO `maker` VALUES (6,'Nero AG');
INSERT INTO `maker` VALUES (7,'KMPlayer.com');
INSERT INTO `maker` VALUES (8,'Gabest');
INSERT INTO `maker` VALUES (9,'cowonamerica.com');
INSERT INTO `maker` VALUES (10,'speedbit.com');
INSERT INTO `maker` VALUES (11,'RAR LAB');
INSERT INTO `maker` VALUES (12,'Daemon Soft Inc.');
INSERT INTO `maker` VALUES (13,'Alcohol Soft');
INSERT INTO `maker` VALUES (14,'Piriform Ltd.')


Спустя 6 минут, 41 секунда (13.11.2010 - 15:48) inpost написал(а):
Основы работы mysql+php
http://php.su/mysql/?functions

Спустя 2 часа, 20 минут, 33 секунды (13.11.2010 - 18:09) Tori написал(а):
Как вывести данные из БД в текстовой форме я знаю, я не понимаю какой запрос надо писать чтобы выводилось то поле по которому жмем?

Спустя 4 минуты, 15 секунд (13.11.2010 - 18:13) DmitryOpalev написал(а):
while ($row = mysql_fetch_assoc(mysql_num_rows(mysql_query("SELECT * FROM `table` WHERE id='$id' ")))) //К примеру, точно не помню как этот запрос правильно сделать, поправьте, если что
{
echo $row['id'];
}

На самом деле все пишется гораздо проще (1 стр.), т.к. расталкивается по переменным, чтобы проще было...
mysql_num_rows - получает количество строк.
mysql_fetch_assoc - делает из этих строк массив, сохраняющийся в переменную $row
Ну и выполняется цикл, равный количеству строк...

Спустя 52 минуты, 1 секунда (13.11.2010 - 19:05) Tori написал(а):
Сортировка по рейтингу(ТОР 10)
SELECT * FROM `programm` ORDER BY `reiting` DESC;

Сортировка по категориям
select * FROM `cats` WHERE `category`='internet';
select * FROM `cats` WHERE `category`='multimedia';
select * FROM `cats` WHERE `category`='discs&files';

А как это все всавить в файл, чтобы при выборе определенного пункта он загружался из БД? Вот начало, а дальше? Что нужно писать перед этими сортировками?
<?php
/*Соединяемся с базой данных*/
$db = mysql_connect ("localhost","root","");
mysql_select_db ("mag2010-4300",$db);
$result = mysql_query ("SELECT `name`,`reiting`,`category`,`producer` FROM `programm`,`cats`,`maker` WHERE programm.id=cats.id AND programm.id=maker.id",$db);
$myrow = mysql_fetch_array ($result);


?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.