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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: вывод

Сообщения:  [1-10]   [11-14] 

 
 автор: sancho   (23.03.2005 в 18:00)   письмо автору
 
   для: cheops   (22.03.2005 в 00:17)
 

Спасибо Cheops, за идею, сработало!!!

   
 
 автор: cheops   (22.03.2005 в 00:17)   письмо автору
 
   для: sancho   (21.03.2005 в 10:45)
 

Я бы не стал менять SQL-запрос, а проверял бы значение имени следующим манером:
<?php
// Устанавливаем соединение с базой данных
include "config.php";
// Формируем SQL-запрос
$sql="select b.name, a.resurs, a.counter, a.IP from 

select 
   IP 
   SUBSTR(INFO,23) as resurs, 
   count (INFO) as counter 
from TABLE 
where INSTR(INFO, 'myshop.ru') = 0   
group by IP, SUBSTR(INFO,23) 
) a 
left join 
(select IP, name from TABLE where (INSTR(INFO, 'myshop.ru') > 0) group by IP, INFO) b 
on a.IP = b.IP 
order by name"

// Выполняем SQL-запрос
$res mysql_query($sql); 
// Проверяем корректность его выполнения
if(!$res) exit(mysql_error());
// Временная переменная
$name_old "";
// В цикле выводим результат
while($r mysql_fetch_array($res))
{
  
$name $r['b.name'];
  if(
$name == $name_old$print_name "";
  else 
$print_name $name;
  
// Присваиваем временной переменной $name_old
  // текущее значение имени
  
$name_old $name;
  
// Вывод строки с именами и прочим
  
echo $print_name." (".$r['a.resurs'].") - Посещаемый ресур №<br>";
}
?>

Т.е. храним имя с предыдущей итерации цикла во временной переменной $name_old, если оно не совпадает на следующей итерации с именем извлечённым из базы данных - значит перед нами новое имя - выводим его, если совпадает, значит старое имя - вместо имени выводим пустую строку.

   
 
 автор: sancho   (21.03.2005 в 14:36)   письмо автору
 
   для: sancho   (21.03.2005 в 10:45)
 

неужели никто не знает?

   
 
 автор: sancho   (21.03.2005 в 10:45)   письмо автору
 
   для: cheops   (18.03.2005 в 19:38)
 

Есть одна таблица, в которой хранится IP адреса пользователей и список посещаемых ресурсов(INFO) этим пользователем, также в INFO хранится имя пользователя и имя его компа в таком виде (Иванов Иван (pc001.myshop.ru)). Из этой таблицы я вывожу имя пользователя, список ресурсов на которых был пользователь, IP'шник и счетчик посещения того или иного ресурса, вот таким образом:

select b.name, a.resurs, a.counter, a.IP from
(
select
   IP
   SUBSTR(INFO,23) as resurs,
   count (INFO) as counter
from TABLE
where INSTR(INFO, 'myshop.ru') = 0  
group by IP, SUBSTR(INFO,23)
) a
left join
(select IP, name from TABLE where (INSTR(INFO, 'myshop.ru') > 0) group by IP, INFO) b
on a.IP = b.IP
order by name

в итоге выглялит, вот так:

Иванов Иван (pc001.myshop.ru) - посещаемый ресурс№1 - 5 - IP
Иванов Иван (pc001.myshop.ru) - посещаемый ресурс№2 - 2 - IP
Иванов Иван (pc001.myshop.ru) - посещаемый ресурс№3 - 5 - IP
Иванов Иван (pc001.myshop.ru) - посещаемый ресурс№4 - 4 - IP

надо что бы имя пользователя выводилось один раз. Может как то средствами PHP можно это сделать, подскажите пожалуйста?

   
 
 автор: cheops   (18.03.2005 в 19:38)   письмо автору
 
   для: sancho   (18.03.2005 в 17:44)
 

Хм... а вы бы привели структуру ваших таблиц, тогда проще было бы помочь, просто не очень понятно, что требуется, когда перед глазами нет таблиц.

   
 
 автор: sancho   (18.03.2005 в 17:44)   письмо автору
 
   для: sancho   (18.03.2005 в 11:35)
 

Помогите pls с проблемой.

   
 
 автор: sancho   (18.03.2005 в 11:35)   письмо автору
 
   для: sancho   (17.03.2005 в 17:57)
 

А если нет возможности использовать третью таблицу, то как еще можно реализовать? Подскажите пожалуйста, pls :-(((

   
 
 автор: sancho   (17.03.2005 в 17:57)   письмо автору
 
   для: Axxil   (17.03.2005 в 16:11)
 

Спасибо, щас попробую.

   
 
 автор: Axxil   (17.03.2005 в 16:11)   письмо автору
 
   для: sancho   (17.03.2005 в 13:58)
 

Например есть три таблицы

clients с данными о клиенте
fields:
c_id
c_name
________________________

goods с данными о товарах
g_id
g_name

------------------------------------------

orders с данными о покупках
fields
order_id
c_id
g_id

Соответсвенно заполняем эти таблицы.
И потом уже будет легко составить запрос который будет по id клиента выводить информацию о его заказах

<?
// получаем имя покупателя
$sql="SELECT name FROM clients where c_id=".$id;
$query=mysql_query($sql);
$r=mysql_fetch_array($query1);
$c_name=$r['name'];
?>
<table>
<tr><td><?=$c_name;?></td></tr>
<tr><td>
<?//получаем информацию о заказах
$sql="SELECT t2.g_name FROM goods t1,orders t2 
WHERE t1.g_id=t2.g_id
AND t2.c_id="
.$id;
$query=mysql_query($sql);
while (
$r=mysql_fetch_array($query)){
echo 
$r['g_name']."<br>";
}
?>
</td></tr>
</table>

Надеюсь смысл понятен...
PS Это в теории баз данных называется приведение к третьей (если не ошибаюсь) канонической форме

   
 
 автор: sancho   (17.03.2005 в 13:58)   письмо автору
 
   для: cheops   (17.03.2005 в 13:38)
 

А не подскажите как можно это реализовать?

   

Сообщения:  [1-10]   [11-14] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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