скажите как мне реализовать следующее: нужно на главной вывести все данные из таблицы data, так сказать в один каталог файлов, в каталоге будет краткое описание файлов, мини скриншот, количество просмотров файла, количество комментариев и автор файла, а при нажатии на какой нибудь из файлов будет открываться страница файла с подробным описание, скриншотом и прочими подробностями о файле и ссылка на скачивание файла. Надеюсь, ясно изложил свой вопрос!
sew81Oi9, у меня складывается ощущение, что ты без всякой базы (базовые знания) пытаешься прыгнуть выше своей головы. Когда я в достаточной мере изучил пых и мускул, у меня не возникало таких вопросов. Что касается вопроса, то так хватит для начала:
index.php <?php / где-то там соединяемся с сервером и выбираем нужную бд /
// теперь делаем выборку из `data` $files = mysql_query("SELECT * FROM `data` LIMIT 0, 30 --"); if (mysql_num_rows($files) == 0) { echo 'Нет ни одного файла'; } else { for ($i = 0; $i < mysql_num_rows($files); $i++) { // В цикле перебираем всю выборку $file_id = mysql_result($files, $i, "file_id"); // номер файла $opisanie = mysql_result($files, $i, "opisanie"); // Описание $author_login = mysql_result($files, $i, "author_login"); // логин автора
file.php // А в этом файле мы принимаем номер файла и выбираем из таблицы только одну запись <?php if (isset($_GET['id'])) { $id = $_GET['id']; $file = mysql_query("SELECT * FROM `data` WHERE `file_id` = $id "); }
ImIeee, так и знал, что найдутся такие, кто найдёт недостатки там, где их не нужно искать. Я объяснил принцип. Или прикажешь сюда вставить класс/трэит для фильтрации данных, присобачить класс для работы с БД, прикрутить шаблонизатор и бла-бла-бла?
Miha, Фильтрация данных - неотъемлемая часть данного принципа, а твой код может быть взят за основу. Не нужно преувеличивать, достаточно написать $id = (int) $_GET['id'];
почему в адресе при наведении на ссылку file.php нету номера id в конце адреса? код: <?php $id = $_GET['id']; $file = mysql_query("SELECT * FROM data WHERE id=$id"); $files = mysql_query("SELECT * FROM data",$db); if(mysql_num_rows($files)==0) { echo "Нет ни одного файла"; } else { for ($i=0;$i<mysql_num_rows($files);$i++) { $mini_img = mysql_result($files, $i, "mini_img"); $title = mysql_result($files, $i, "title"); $file_id = mysql_result($files, $i, "id"); // номер файла $opisanie = mysql_result($files, $i, "description"); // Описание $author_login = mysql_result($files, $i, "author"); // логин автора
echo '<img align="left" src=".$mini_img.">'; echo '<strong>Описание:</strong> '.$opisanie.'<br>'; echo '<strong>Автор:</strong> '.$author_login.'<br>'; echo '<a href="file.php?id='.$id.'">'.$title.'</a>'; } } ?> так выглядит ссылка при переходе по ней: localhost/webdesign/file.php?id=
ImIeee, именно так я сначала и написал, но решил стереть, чтобы не добавлять лишнего. sew81Oi9, потому что ты не передал GET-запрос. Вместо $id в ссылке напиши $file_id
sew81Oi9, зачем ты сразу делаешь несколько mysql-запросов? Выборку нескольких записей нужно делать, если хочешь список файлов, а одной записи - когда хочешь показать информацию об одном конкретном файле (на странице file.php?id=N)
15 ноя 2012 в 18:46