[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод выборочных рядов из таблицы базы данных
Crater
Вопрос, думаю, достаточно хорошо сформулирован. Поясню на всякий случай. Есть база данных. В ней таблица. В таблице предположительно будет много-много рядов. Ну, достаточно много. В каждом из этих рядов будет значение - определяющее. Если это значение не пусто, ничего с этим рядом делать не надо. Ежели значение пустует - требуется вывести данный ряд (не весь, выборочные значения) в табличку. Предположительно табличка получится немаленькая, но уж с этим-то я что-нибудь поделать сумею.
Вот вам конкретика, чтоб смогли сразу посоветовать, что сделать.

Таблица, в которую надо вывести значения - список игр, куда можно подключиться. Параметр, по которому будет определяться выводить значения ряда или нет - наличие игроков. Если места забиты, сами понимаете, подключаться некуда. Игрока всего два так что в моём случае параметр - значение 'gamer_2_id'.

Спрашивайте, если что непонятно.



Спустя 3 минуты, 31 секунда (28.10.2010 - 07:50) sergeiss написал(а):
Цитата (Crater @ 28.10.2010 - 08:46)
Спрашивайте, если что непонятно.

Так я не понял... Ты УЧИШЬ или САМ УЧИШЬСЯ? wink.gif

Иди-ка почитай вот эту ссылку http://phpforum.ru/index.php?showtopic=21916, там твой вопрос "обсосан" со всех сторон.

Спустя 27 минут, 22 секунды (28.10.2010 - 08:17) Crater написал(а):
Читал я его уже. Я сначала день ищу ответ на вопрос, где только можно, если мне что-то непонятно, а потом уже задаю вопрос тут. И если задаю - значит либо я протупил либо искренне не понимаю, что надо делать. Вот например в данном топике. Обсосан со всех сторон только не с моей. Есть вариант простого вывода любых таблиц без проверки значений. Есть с использованием поискового запроса, но выводится не таблица, а строка. Мне нужен компромисс. И я его найти самостоятельно не могу. Поможешь?

Спустя 7 минут, 49 секунд (28.10.2010 - 08:25) linker написал(а):
INSERT INTO `table2` (`field1`, `field2`) VALUES (SELECT `field1`, `field2` FROM `table1` WHERE `field3` IS NULL LIMIT 1)

Спустя 11 минут, 35 секунд (28.10.2010 - 08:37) sergeiss написал(а):
Crater - для лучшего понимания давай разделим задачу на 2 основные части, которые между собой не связаны. Точнее говоря, изменение в одной из них не приводит к изменениям в другой.
1. Составление правильного запросы, выбирающего данные согласно нужным критериям.
2. Вывод полученных данных.

В п.1 мы получаем таблицу. Из любый данных. Для п.2 совершенно не важно, как эти данные были получены.

А теперь давай твои вопросы - что не понятно и по каждой части из них.

Спустя 11 минут, 15 секунд (28.10.2010 - 08:48) Crater написал(а):
Да ладно, с этим кое как разобрался. Хотя, ещё не проверял все возможные варианты. Всем спасибо, если будут проблемы, я ещё вернусь.

Спустя 1 день, 16 часов, 15 минут, 46 секунд (30.10.2010 - 01:04) Crater написал(а):
sergeiss
На счёт вывода. Сейчас вот протестировал скрипт на адекватность в условиях нескольких игр, к которым можно подсоединиться. Вот он, кстати:

	$test = mysql_query("SELECT * FROM games WHERE gamer_2_id = '".$_SESSION['id']."'");
if (mysql_num_rows($test) == 0) {
$result = mysql_query("SELECT * FROM `games`");
echo '<table border="1"width=100% align=center>
<tr>
<th
scope="col">ID игры</th>
<th
scope="col">Игрок</th>
<th
scope="col">Подключиться</th>
</tr>
';
while ($row = mysql_fetch_assoc($result)) {
if($row['gamer_2_id'] == 0)
$gamer1 = mysql_query("SELECT * FROM `users` WHERE id = '".$row['gamer_1_id']."'");
@$res1 = mysql_fetch_assoc($gamer1);
echo '
<tr>
<th
scope="id_game">'.$row['id_game'].'</th>
<th
scope="gamer_1_id">'.$row['gamer_1_id'].'</th>
<th
scope="connect">
<form
method="get">
<input
type="submit" name="connect" value="Подключиться" method="get" class="cntrl"></form>
</th></tr>
</table>

';
if(isset($_GET['connect'])) {
$_SESSION['id_game'] = $row['id_game'];
include("start_connect.php");
}
}
}

...


Прошу обратить особое внимание на echo. Сначала он рисует шапку таблицы, а потом в блоке while перебирающем значения по идее должны подрисовываться записи. Но на деле рисуются они только один раз - остальные записи отображаются в строку. Что я не так делаю?

Спустя 12 минут, 31 секунда (30.10.2010 - 01:16) aH6y написал(а):
Crater
Тег лишний закрытия таблицы:
</table>

Советую убрать [at] перед mysql_fetch_assoc и переписать код так, чтобы исключить любые ошибки.

Спустя 5 минут, 11 секунд (30.10.2010 - 01:21) Crater написал(а):
Блин, что это со мной сегодня. Закрыл таблицу и удивляюсь... mad.gif
Ладно... осталось с кнопками разобраться.

Спустя 2 минуты, 45 секунд (30.10.2010 - 01:24) Crater написал(а):
smile.gif Да, заглупил жудко. А ошибка эта... чёрт, как же долго я с ней промудохался. В конце концов плюнул. В конце, когда пойдёт оптимизация и шлифовка, вернусь к ней. Сейчас пока хочется закончить - осталось то всего ничего.


_____________
Цитата
Я не потерпел неудачу. Я просто нашел десять тысяч способов, которые не работают.
Быстрый ответ:

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