[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сортировка таблицы и объединение ячеек
Guest
Есть запрос:

$res = mysql_query("SELECT `sait`.`name`,`kategorii`.`kati` , `vest`.`times`,`vest`.`datas`
FROM `sait`,`kategorii` ,`vest`, `krit_sobytiy`,`pages`
WHERE `sait`.`id`=`vest`.`saitid`
AND `kategorii`.`id`=`sait`.`kategory` "
) or die(mysql_error());


while ($mass = mysql_fetch_assoc($res))
{
echo "<tr>";
echo "<td>" . $mass['name'] . "</td>";
echo "<td>" . $mass['kati'] . "</td>";
echo "<td>" . $mass['page'] . "</td>";
echo "<td>" . $mass['names'] . "</td>";
echo "<td>" . $mass['datas'] ." " . $mass['times'] ."</td>";
echo "</tr>";

}

По результатам запроса создается таблица, как сделать так,чтобы сначала выводились все строки с одинаковым ($mass['name']), потом с другим .



Например:
Было:
1 столбец/ 2 столбец
Петров / vehgghgh
Васечкин / fgfgfgfgfg
Иванова/jhjhjhj
Васечкин/jhkjkjkjkjkkj
Петров/1k21k2jk1jk1

Хочу сделать,но не знаю как:
Петров / vehgghgh
Петров/1k21k2jk1jk1
Васечкин / fgfgfgfgfg
Васечкин/jhkjkjkjkjkkj
Иванова/jhjhjhj

Как это сделать?
И еще потом, чтобы объединить ячейки, чтобы не писать в таблице несколько раз: Петров, Петров, а объединенную ячейку для количества записей, надейнных с Петров в 1 стоблце.
Подскажите, как сделать?



Спустя 43 минуты, 8 секунд (17.10.2011 - 15:03) Winston написал(а):
А если так переписать
Свернутый текст
$res = mysql_query("SELECT  `sait`.`name`,`kategorii`.`kati` , `vest`.`times`,`vest`.`datas`  FROM `sait`,`kategorii` ,`vest`, `krit_sobytiy`,`pages` WHERE   `sait`.`id`=`vest`.`saitid` AND `kategorii`.`id`=`sait`.`kategory` ORDER BY `sait`.`name`") or die(mysql_error());

Вместо ORDER BY `sait`.`name` если что, напиши то поле, по которому нужно отсортировать.

Спустя 6 минут, 16 секунд (17.10.2011 - 15:09) tanya12345 написал(а):
Спасибо, а чтобы объединить ячейки, чтобы не писать в таблице несколько раз: Петров, Петров, а объединенную ячейку Петров для количества записей, надейнных с Петров в 1 стоблце.
Подскажите, как сделать?

Спустя 2 минуты, 54 секунды (17.10.2011 - 15:12) Winston написал(а):
Попробуйте вместо ORDER BY написать GROUP BY
Это имеете в виду ?

Спустя 15 минут, 26 секунд (17.10.2011 - 15:27) Guest написал(а):
Мой код:
Сначала выбираю категорию, а потом из выбранной категории сайт, и автоматически выводится таблица с данными. Почему -то таблица появляется только для 1-го сайта из списка категории. В чем причина?
И как можно сделать чтобы несколько сайтов выбиралось одновременно, параметр multilple я select добавила, а что еще изменить не знаю.


function is_sel($a, $field)
{
$b = isset($_POST[$field])?$_POST[$field]:NULL;
if($a == $b) return 'selected="selected"';
}

$res = mysql_query('SELECT * FROM kategorii');
?>
<form id="frm" method="post" >
<div
id='cont'><select name="kati" onchange="document.getElementById('frm').submit()" >
<option
value='null'>- Выберите категорию -</option>
<?

while($row = mysql_fetch_array($res))
echo "<option ".is_sel($row['id'],'kati')." value='" . $row['id'] . "'>" . $row['kati'] . "</option>\r\n";
echo "</select><BR><BR>";

if(isset($_POST['kati']))
{
$res=mysql_query('SELECT * FROM sait WHERE kategory="'.(int)$_POST['kati'].'"');

echo "<select name=\"region\" onchange=\" document.getElementById('frm').submit();\" multiple=\"multiple\" >
<option id=
\"region\" value='0'>- Выберите сайт -</option>";

while($row = mysql_fetch_array($res))
echo "<option ".is_sel($row['id'],'region')." value='" . $row['id'] . "'>" . $row['name'] . "</option>\r\n";

echo "</select>";
}

$region = isset($_POST['region'])?$_POST['region']:NULL;


if($region && $region !== 0)
{


$res=mysql_query('SELECT * FROM sait WHERE id='.(int)$_POST['region'].' ');
$row = mysql_fetch_array($res);
echo "<BR><BR><h2><center>уу ".$row['name']."</center></h2>";
$op=$row['id'];
echo "<BR><BR><h2><center>ее".$row['id']."</center></h2>";
echo "<table border='1' cellspacing='0' cellpadding='5'>
<tr style='text-align:center;'>
<td>Сайт</td>
<td>Категория</td>
<td>Дата</td>
</tr>"
;

$resr = mysql_query("SELECT `domen`.`paidtill`,`statistica`.`datadni`,`statistica`.`datavremy`, `sait`.`name`,`kategorii`.`kati`, FROM `statistica`,`sait`,`kategorii` ,`domen` WHERE `sait`.`id`='".$op."' AND `sait`.`id`=`statistica`.`nameid` AND `kategorii`.`id`=`sait`.`kategory` GROUP BY `statistica`.`datadni` ") or die(mysql_error());


while ($mass = mysql_fetch_assoc($resr))
{
echo "<tr>";
echo "<td>" . $mass['name'] . "</td>";
echo "<td>" . $mass['kati'] . "</td>";
echo "<td>" . $mass['datadni'] ." " . $mass['datavremy'] ."</td>";
echo "</tr>";
}
echo "</div></table>";
}

echo '</form>';


Спустя 14 часов, 31 минута, 43 секунды (18.10.2011 - 05:59) tanya12345 написал(а):
вопрос не решен. подскажите, как объединить ячейки 1 столбца с одинаковым содержимым?

Спустя 23 минуты, 57 секунд (18.10.2011 - 06:23) tanya12345 написал(а):
Я понимаю, что в html для этого используют rowspan,но как прикрутить rowspan к выборке значений из базы в массиве?
$resr = mysql_query("SELECT  `sait`.`name`,`kategorii`.`kati`,   FROM `statistica`,`sait`,`kategorii` ,`domen`  WHERE  `sait`.`id`='".$op."' AND `sait`.`id`=`statistica`.`nameid`  AND `kategorii`.`id`=`sait`.`kategory`   GROUP BY  `statistica`.`datadni` ") or die(mysql_error());


while ($mass = mysql_fetch_assoc($resr))
{
echo "<tr>";
echo "<td>" . $mass['name'] . "</td>";
echo "<td>" . $mass['kati'] . "</td>";
echo "</tr>";
}

подскажите, как объединить ячейки 1 столбца с одинаковым содержимым?
Вот что я имею ввиду подэтим:
<table>
<tr><td>петров</td><td> колбаса</td></tr>
<tr><td>васечкин</td><td> лимон</td></tr>
<tr><td>васечкин</td><td> водка</td></tr>
<tr><td>петров</td><td> минералка</td></tr>
<tr><td>иванова</td><td> оливье</td></tr>
<tr><td>петров</td><td> лук</td></tr>
</table>
А мне надо чтобы было:
<table>
<tr><td rowspan=3>петров</td><td> колбаса</td></tr>
<tr><td> минералка</td></tr>
<tr><td> лук</td></tr>
<tr><td rowspan=2>васечкин</td><td> лимон</td></tr>
<tr><td> водка</td></tr>
<tr><td>иванова</td><td> оливье</td></tr>
</table>

Спустя 11 минут, 15 секунд (18.10.2011 - 06:34) tanya12345 написал(а):
по идеи,количество строк с одинаковыми данными — значение rowspan.
а как это прикрутить к выборке значений из масссива, подскажите?

$resr = mysql_query("SELECT `sait`.`name`,`kategorii`.`kati`, FROM `statistica`,`sait`,`kategorii` ,`domen` WHERE `sait`.`id`='".$op."' AND `sait`.`id`=`statistica`.`nameid` AND `kategorii`.`id`=`sait`.`kategory` GROUP BY `statistica`.`datadni` ") or die(mysql_error());


while ($mass = mysql_fetch_assoc($resr))
{
echo "<tr>";
echo "<td>" . $mass['name'] . "</td>";
echo "<td>" . $mass['kati'] . "</td>";
echo "</tr>";
}

Спустя 7 часов, 40 минут, 11 секунд (18.10.2011 - 14:15) tanya12345 написал(а):
помогите пожалуйста решить проблему??????????????

Спустя 1 час, 43 минуты, 12 секунд (18.10.2011 - 15:58) imbalance_hero написал(а):
tanya12345
Тебе 4 уже предупреждения, ещё 1 раз создашь множество одинаковых тем - буду карать!
Тебе надо вывод записывать в переменную, а не выводить сразу...

объеденить вниз? Тебе надо создать 2 переменных, в первую заносишь первую часть данных, а именно '<tr><td>сюда</td>', вторую - всё остальное. Теперь просто логику напиши, что если данные точно такие же в переменной, что и с предыдущей страницы - увеличиваешь цифра объединения на +1, а если данные другие, то цифру сбрасываешь на 1, и ту запись добавляешь!
Быстрый ответ:

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