Перейти к содержимому

Фото
- - - - -

MySQL запросы


  • Вы не можете создать новую тему
  • Please log in to reply
10 ответов в этой теме

#1 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 04 Декабрь 2008 - 16:15

Итешники, у меня проблема со сложными запросами, с простыми пока все норм.

У меня в базе две таблицы.
комментарии и новости
В комментс есть столбцы постс, ком, ид
а в новостях ид, текст, автор.


как подсчитать, сколько комментариев принадлежит одной новости, другой, третьей и т.д.
В комментс столбец постс показывает какой новости принадлежит комментарий

например, правильно ли?

$result00 = mysql_query(select count(*) from comments, news where comments.posts = news.id);
$temp = mysql_fetch_array($result00);

А выводить?
echo $temp[0]; echo $temp[1];

Подправте плиз..


Для особо умных: Не надо мне тут говорить не знаешь как писать не суйся, че ты тупость пишешь.
Я сам прекрасно знаю что мне делать. Если не знаешь как помочь проходи лесом данный топик.
  • 0

#2 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 04 Декабрь 2008 - 17:42

AgentVlad, count(*) нельзя писать просто так ... если и писать, то count(*) AS quantity(тут придумать самому имя) ну и потом выводишь как $temp['quantity'] :) Типо того )

Сообщение изменено: Otacon (04 Декабрь 2008 - 17:43 )

  • 0

#3 Cepera

Cepera
  • Пользователь
  • 277 сообщений
  • Откуда:Таллинн, ТТУ

Отправлено 04 Декабрь 2008 - 22:30

почемуж нельзя..
$query = mysql_query("
SELECT COUNT(*)
FROM комментс
WHERE постс='идпоста'", $db)";
$result=mysql_fetch_array($query);
echo $result[0];
будет работать... ну надеюсь, что я прав:D
  • 0

#4 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 05 Декабрь 2008 - 00:01

Cepera, Увы не будет ) Проверено опытным путём
  • 0

#5 RiboZz

RiboZz
  • Пользователь
  • 40 сообщений
  • Откуда:Tallinn

Отправлено 08 Декабрь 2008 - 12:43

comments.posts - как я понимаю id новости? Тогда так:

SELECT posts, COUNT(*) FROM comments WHERE 1 GROUP BY posts


Только здесь надо помнить, что на поле "posts" должен стоять index.

Сообщение изменено: RiboZz (08 Декабрь 2008 - 12:44 )

  • 0

#6 zedirtybastard

zedirtybastard
  • Пользователь
  • 499 сообщений

Отправлено 08 Декабрь 2008 - 17:40

Архитектурно неверное решение. Рекомендую количество комментов записывать прямо в таблицу с постами и апдейтить это значение при добавлении\удалении комментов.
  • 0

#7 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 23 Декабрь 2008 - 09:13

Доброе утро всем, если кто может, чем помочь, буду рад в преддверии праздников.)))

Люди, такая трабла.

Пользователь загружает на сервер фото + параллельно добавляется имя файла в БД, после того как он удаляет анкету свою, то фото на сервере остается, а запись с БД стирается.

Как реализовать так, чтобы удаляя анкету параллельно удалялась и фотография с сервера. Зачем захломлять лишними фотками:)

Я так понимаю, что без PHP тут не обойтись.

Есть что-нить дельное? Можете помочь?
  • 0

#8 Equals

Equals
  • Пользователь
  • 73 сообщений

Отправлено 23 Декабрь 2008 - 09:58


<?php

unlink($filename);


  • 0

#9 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 23 Декабрь 2008 - 11:35

Привел код, токо че-то не пашет, потому что знания ниже плинтуса.
Помогите довести до ума.

В таблице andmed в колонке foto хранится название файла например 1.jpg

// Берем название фоторафии из удаляемой анкеты
$result = "select foto from andmed where id='$id'";
// Заносим результат в переменную
$myrow = mysql_fetch_array($result);
// Присвоим переменной $filename название файла (Наверное лишнее)
$filename = $myrow['foto'];
//удаляем из директории файл
unlink ('./files/andmed/foto/$filename');

У меня этот код вообще отрубает Апатч)))Пишет Еррор сенд репорт!)

Сообщение изменено: AgentVlad (23 Декабрь 2008 - 11:38 )

  • 0

#10 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 23 Декабрь 2008 - 11:51

AgentVlad, специально выделяю: unlink ("./files/andmed/foto/$filename"); Никаких одинарных ковычек, если вносишь переменную под них! Если же двойные ковычки не переносишь на дух, то unlink ('./files/andmed/foto/'.$filename);

Сообщение изменено: Otacon (23 Декабрь 2008 - 11:52 )

  • 0

#11 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 23 Декабрь 2008 - 12:05

Otacon, спасибо, глупая ошибка
Equals Спсб.

Сообщение изменено: AgentVlad (23 Декабрь 2008 - 12:05 )

  • 0