Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод записей из базы данных по категориям
 
 автор: Эдуард   (19.10.2005 в 16:21)   письмо автору
 
 

Мне нужна помощь. Я написал скрипт, который выводит из базы дааных MySQL описания скриптов и ссылки, что бы их скачать. Я не могу разобраться:
1. Как сделать вывод по категориям.
2. Как выводить разделение Мои и Другие скрипты.
Привожу код скрипта:

 <?php
include "configuration.php";
@
mysql_connect ($dblocation,$dbuser,$dbpasswd);
@
mysql_query ("USE $dbname");
$num $ss;
$page $_GET['page'];
$result = @mysql_query("SELECT * FROM dload"); 
$posts mysql_num_rows($result);
$total intval(($posts 1) / $num) + 1;
$page intval($page);
if(empty(
$page) or $page 0
{
$page 1
}
if(
$page $total
{
$page $total;
}
$start $page $num $num;
$result = @mysql_query("SELECT * FROM dload LIMIT $start$num");
$i 1;
while (
$postrow mysql_fetch_array($result)) 
{
$moi $postrow['moi'];
$cat $postrow['cat'];
if (!
$moi and !$cat)
{
echo 
"

"
;
}
if (
$moi == 2)
{
$moi 2;
echo 
"
<table width='600' border='0' bgcolor='#F5F5F5'>
  <tr>
    <td>Номер файла: "
.$postrow['id']."<br>
Название: "
.$postrow['id']." Дата: ".$postrow['date']."<br>
Описание: "
.$postrow['opis']."<br>
<a href=/dload/"
.$postrow['fail'].">Скачать</a>
</td>
  </tr>
</table>
"
;
}
if (
$moi == 1)
{
$moi 1;
echo 
"
<table width='600' border='0' bgcolor='#F5F5F5'>
  <tr>
    <td>Номер файла: "
.$postrow['id']."<br>
Название: "
.$postrow['id']." Дата: ".$postrow['date']."<br>
Описание: "
.$postrow['opis']."<br>
<a href=/dload/"
.$postrow['fail'].">Скачать</a>
</td>
  </tr>
</table>
"
;
}
$i++;
}
if (
$page != 1)
{
$pervpage "<a href= ./index.php?page=1><<</a> 
                               <a href= ./index.php?page="
. ($page 1) ."><</a> ";

if (
$page != $total
{
$nextpage " <a href= ./index.php?page=". ($page 1) .">></a> 
<a href= ./index.php?page="
.$total.">>></a>"
}
if(
$page 0
{
$page2left " <a href= ./index.php?page=". ($page 2) .">". ($page 2) ."</a> | ";

if(
$page 0
{
$page1left "<a href= ./index.php?page=". ($page 1) .">". ($page 1) ."</a> | ";

if(
$page <= $total
{
$page2right " | <a href= ./index.php?page=". ($page 2) .">". ($page 2) ."</a>";

if(
$page <= $total
{
$page1right " | <a href= ./index.php?page=". ($page 1) .">". ($page 1) ."</a>";

echo 
"$pervpage $page2left $page1left <b> $page </b> $page1right $page2right $nextpage";
?>

Configuration.php

$ss = "10"; // Число Выводимых статей
$dblocation = "localhost";  //Имя сервера MySQL.
$dbname = "besp"; // Имя базы.
$dbuser = "root"; // Имя пользователя базы данных.
$dbpasswd = ""; // Пароль пользователя

Колонки в таблице dload:
id-номер.
naz-Название скрипта
date- дата
opis- описание
fail- ссылка на фаил(только имя и тип файла)
cat- категория
moi- принимает значение 1, при выводе ссылке на мой, 0 при выводе другого скрипта.
Если можно, помогите осуществить запись файла в колонку фаил, взаместо ссылки на него.

   
 
 автор: cheops   (19.10.2005 в 17:42)   письмо автору
 
   для: Эдуард   (19.10.2005 в 16:21)
 

А какова структура таблиц, не могли бы вы прикрепить дамп базы данных - без него мы не сможем запустить скрипт для отладки.

   
 
 автор: Эдуард   (20.10.2005 в 02:05)   письмо автору
 
   для: cheops   (19.10.2005 в 17:42)
 

Я создал для скриптов специальный код установки. Можете установить.

<?php
include "configuration.php";
$dbconnect = @mysql_connect ($dblocation,$dbuser,$dbpasswd);
if (
$dbconnect)
{
echo 
"<center>Соединение с MySQL удачное.</center><br>";
}
else
{
echo 
"<center>Соединение не удачное. Ошибка: ".mysql_error()."</center><br>";
}
$sozdBD mysql_query ("CREATE DATABASE $dbname");
if (
$sozdBD)
{
echo 
"<center>Создание базы произошло удачно.</center><br>";
}
else
{
echo 
"<center>Создание базы произошло не удачно. Ошибка: ".mysql_error()."</center><br>";
}
$use mysql_query ("USE $dbname");
if (
$use)
{
echo 
"<center>Выбор базы сделан.</center><br>";
}
else
{
echo 
"<center>Выбор базы не сделан. Ошибка: ".mysql_error()."</center><br>";
}
$create mysql_query ("CREATE TABLE dload (
id int(6) NOT NULL auto_increment,
naz text,
date text,
opis text,
fail text,
cat text,
moi text,
dr text,
PRIMARY KEY (id)
) TYPE=MyISAM;"
);
if (
$create)
{
echo 
"<center>Создание таблиц произошло удачно.</center><br>";
}
else
{
echo 
"<center>Создание таблиц произошло не удачно. Ошибка: ".mysql_error()."</center><br>";
}
$musculclose = @mysql_close($dbconnect);
if (
$musculclose)
{
echo 
"<center>Завершение создания базы данных MySQL завершено удачно.</center><br>";
}
else
{
echo 
"<center>Завершение создания базы данных MySQL завершено не удачно. Ошибка: ".mysql_error()."</center><br>";
}
?>

А что такое дамп?

   
 
 автор: vasso_m   (20.10.2005 в 08:49)   письмо автору
 
   для: Эдуард   (20.10.2005 в 02:05)
 

Дамп - это архив базы данных, насколько я понимаю...

   
 
 автор: cheops   (20.10.2005 в 12:24)   письмо автору
 
   для: Эдуард   (20.10.2005 в 02:05)
 

Я сейчас уже не успеваю (убегаю), если я вечером забуду ответить - поднимите пожалуйста тему.

PS Дамп это текстовый файл с набором записей, которые воспроизводят базу данных, получается при помощи утилиты mysqldump.

   
 
 автор: Эдуард   (20.10.2005 в 15:34)   письмо автору
 
   для: cheops   (20.10.2005 в 12:24)
 

Помочь Вы мне всё таки сможете.(Поднимаю тему)

   
 
 автор: Эдуард   (21.10.2005 в 09:15)   письмо автору
 
   для: Эдуард   (20.10.2005 в 15:34)
 

Просто я создал сайт [url]eddash.h15.ru[/url]. Он посвящён языку PHP. Мне нужно доделать только этот раздел и всё.

   
 
 автор: cheops   (21.10.2005 в 14:23)   письмо автору
 
   для: Эдуард   (20.10.2005 в 02:05)
 

Нужно ещё хотя бы несколько записей из таблицы, иначе нельзя запусить приложение и начать отладку - оно пишет
Warning: Division by zero in d:\main\get.php on line 13

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\main\get.php on line 26

   
 
 автор: Эдуард   (21.10.2005 в 15:51)   письмо автору
 
   для: cheops   (21.10.2005 в 14:23)
 

Зпустите фаил setup.php, потом задайте в phpmyadmin SQL запрос:

INSERT INTO dload VALUES (1,'тест','9.9.99','Тестовое скачивание','testfile.zip','mail','1')

Выполните этот код.

   
 
 автор: Эдуард   (21.10.2005 в 15:54)   письмо автору
 
   для: Эдуард   (21.10.2005 в 15:51)
 

и желательно взаместо данного фрагмента в index.php

$moi = $postrow['moi']; 
$cat = $postrow['cat']; 
if (!$moi and !$cat) 

echo " 

"; 

if ($moi == 2) 

$moi = 2; 
echo " 
<table width='600' border='0' bgcolor='#F5F5F5'> 
  <tr> 
    <td>Номер файла: ".$postrow['id']."<br> 
Название: ".$postrow['id']." Дата: ".$postrow['date']."<br> 
Описание: ".$postrow['opis']."<br> 
<a href=/dload/".$postrow['fail'].">Скачать</a> 
</td> 
  </tr> 
</table> 
"; 

if ($moi == 1) 

$moi = 1; 
echo " 
<table width='600' border='0' bgcolor='#F5F5F5'> 
  <tr> 
    <td>Номер файла: ".$postrow['id']."<br> 
Название: ".$postrow['id']." Дата: ".$postrow['date']."<br> 
Описание: ".$postrow['opis']."<br> 
<a href=/dload/".$postrow['fail'].">Скачать</a> 
</td> 
  </tr> 
</table> 
"; 
}

поставить такой:

echo " 
<table width='600' border='0' bgcolor='#F5F5F5'> 
  <tr> 
    <td>Номер файла: ".$postrow['id']."<br> 
Название: ".$postrow['id']." Дата: ".$postrow['date']."<br> 
Описание: ".$postrow['opis']."<br> 
<a href=/dload/".$postrow['fail'].">Скачать</a> 
</td> 
  </tr> 
</table> 
"; 

Так будет работать, но без категорий

   
 
 автор: Эдуард   (22.10.2005 в 15:21)   письмо автору
 
   для: Эдуард   (21.10.2005 в 15:54)
 

Пожалуйста ответьте на данный вопрос.

   
 
 автор: cheops   (23.10.2005 в 20:58)   письмо автору
 
   для: Эдуард   (21.10.2005 в 15:51)
 

>Зпустите фаил setup.php, потом задайте в phpmyadmin SQL
>запрос:
>

>INSERT INTO dload VALUES (1,'тест','9.9.99','Тестовое
>скачивание','testfile.zip','mail','1')
>

>Выполните этот код.
А категории каким полем определяются? Кстати, запрос не срабатывает, так как число полей в нём и в таблице dload, установщик для которой был приведён выше, не совпадают.

   
 
 автор: Эдуард   (24.10.2005 в 10:09)   письмо автору
 
   для: cheops   (23.10.2005 в 20:58)
 

просто уберите строку где создаётся поле dr, оно не нужно и mail измените на 1, так всё работает.
Категории определяются под предпоследним полем в строке cat. В данном случае это будет mail

   
 
 автор: Эдуард   (28.10.2005 в 17:11)   письмо автору
 
   для: Эдуард   (24.10.2005 в 10:09)
 

Помогите кто нибудь.

   
 
 автор: Эдуард   (31.10.2005 в 14:49)   письмо автору
 
   для: Эдуард   (28.10.2005 в 17:11)
 

Кто нибудь меня видит?

   
 
 автор: cheops   (31.10.2005 в 19:22)   письмо автору
 
   для: Эдуард   (31.10.2005 в 14:49)
 

Ага :))), только сложно воспроизвести ситуацию на локальной машине - прикрепите дамп со структорой таблицы и несколькими записями (хотя бы штук 5) и тот файл который с этой таблице работате.

   
 
 автор: Эдуард   (01.11.2005 в 16:49)   письмо автору
 
   для: cheops   (31.10.2005 в 19:22)
 

Подождите, я только найду где можно скачать программу mysqldump.

   
 
 автор: cheops   (01.11.2005 в 23:08)   письмо автору
 
   для: Эдуард   (01.11.2005 в 16:49)
 

phpMyAdmin можно загрузить с официального сайта этого Web-приложения http://www.phpmyadmin.net/ - там всегда свежая версия.

   
 
 автор: Эдуард   (03.11.2005 в 15:30)   письмо автору
 
   для: cheops   (01.11.2005 в 23:08)
 

Прикрепляю фаил дампа.

   
 
 автор: Эдуард   (06.11.2005 в 15:28)   письмо автору
 
   для: Эдуард   (03.11.2005 в 15:30)
 

Я уже сделал дамп, ответьте кто нить

   
 
 автор: cheops   (06.11.2005 в 19:00)   письмо автору
 
   для: Эдуард   (03.11.2005 в 15:30)
 

Нужно хотя бы несколько записей INSERT - т.е. то, что будет выводится на страницу.

   
 
 автор: Эдуард   (12.11.2005 в 17:32)   письмо автору
 
   для: cheops   (06.11.2005 в 19:00)
 

Используйте тестовый пример

   
 
 автор: Эдуард   (15.11.2005 в 16:33)   письмо автору
 
   для: Эдуард   (12.11.2005 в 17:32)
 

Всем спасибо за то что пытались помочь, я уже решил эту проблему, просто надо было мускулу дать команду SELECT....WHERE cat=$val.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования