$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 написал(а):
А если так переписать
Вместо ORDER BY `sait`.`name` если что, напиши то поле, по которому нужно отсортировать.
Свернутый текст
$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 добавила, а что еще изменить не знаю.
Сначала выбираю категорию, а потом из выбранной категории сайт, и автоматически выводится таблица с данными. Почему -то таблица появляется только для 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 к выборке значений из базы в массиве?
подскажите, как объединить ячейки 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>
$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, и ту запись добавляешь!
Тебе 4 уже предупреждения, ещё 1 раз создашь множество одинаковых тем - буду карать!
Тебе надо вывод записывать в переменную, а не выводить сразу...
объеденить вниз? Тебе надо создать 2 переменных, в первую заносишь первую часть данных, а именно '<tr><td>сюда</td>', вторую - всё остальное. Теперь просто логику напиши, что если данные точно такие же в переменной, что и с предыдущей страницы - увеличиваешь цифра объединения на +1, а если данные другие, то цифру сбрасываешь на 1, и ту запись добавляешь!