[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Имена строк
RCuPeR
Всем доброй ночи.
Возник такой вопрос: можно ли вытащить названия строк в которых есть какае-то информация ?

Цитата
id | n1 | n2 | n3 | n4 | n5 |

1 |      | a3 | a3 |    | a3  |
1 | b1  |    |      |    |  b3 |


В данном случае нужно вытащить:

(WHERE id = 1): n2, n3, n5.
(WHERE id = 2): n1, n5.

Надеюсь, вопрос ясен.



Спустя 24 минуты, 34 секунды (14.02.2011 - 01:57) waldicom написал(а):
SQL запросом нет, а скриптом конечно можно.
И слезно тебя прошу-умоляю: давай, пожалуйста, своим темам нормальные названия. Спасибо.

Спустя 7 часов, 50 минут, 34 секунды (14.02.2011 - 09:47) linker написал(а):
Строк или столбцов?

Спустя 8 минут, 39 секунд (14.02.2011 - 09:56) RCuPeR написал(а):
waldicom, извиняюсь. В этом случае не нашёл подходящего названия.

linker, наверное, было бы уместней сказать "столбцов".

Спустя 16 минут, 39 секунд (14.02.2011 - 10:13) linker написал(а):
Писать скрипт, одним запросом никак.

Спустя 8 минут (14.02.2011 - 10:21) RCuPeR написал(а):
Хм...Это явно не повод улыбнутся.
Кто может помочь или дать пинок в верном направлении ?

ПЫСЫ: Гугл молчит

Спустя 4 минуты, 47 секунд (14.02.2011 - 10:25) linker написал(а):
mysql_fetch_assoc() возвращает ассоциативный массив, где ключи массива есть названия столбцов. Направление дано.

Спустя 1 минута, 38 секунд (14.02.2011 - 10:27) RCuPeR написал(а):
Спасибо. Ща подумаю, если что, отпишу в эту сторону.

Спустя 13 минут, 28 секунд (14.02.2011 - 10:40) RCuPeR написал(а):
<?php
define("HOST", "localhost");
define("LOGIN", "root");
define("PASS", "");
define("NAME", "photo");

$db = mysql_connect(HOST,LOGIN,PASS);
mysql_select_db(NAME, $db);

$array = mysql_query("SELECT * FROM photo WHERE id_photo = 1") or die(mysql_error());
$row = mysql_fetch_array($array);

//print_r($row);

foreach($row as $key => $value)
echo $key.'=>'.$value.'<br>';
?>


Вывел мне:
0=>1
id_photo=>1
1=>Первая фотка
name=>Первая фотка
2=>files/20110207233512_s.png
small=>files/20110207233512_s.png
3=>files/20110207233512.png
big=>files/20110207233512.png
4=>show
hide=>show
5=>1
pos=>1
6=>1
id_catalog=>1


Откуда берутся дополнительные ключи ?

Спустя 1 минута, 18 секунд (14.02.2011 - 10:42) RCuPeR написал(а):
Ошибку нашёл.

linker, затупил =))

Спустя 12 минут, 2 секунды (14.02.2011 - 10:54) Snus написал(а):
RCuPeR
Тебе пишут одно, а ты используешь другое... smile.gif

Спустя 6 минут, 52 секунды (14.02.2011 - 11:01) RCuPeR написал(а):
Читай мой последний пост.

Спустя 1 минута, 33 секунды (14.02.2011 - 11:02) Snus написал(а):
RCuPeR
Ты не читаешь и я не буду tongue.gif

Спустя 5 минут, 3 секунды (14.02.2011 - 11:07) RCuPeR написал(а):
biggrin.gif

А как теперь вытащить именна только тех колонок где есть инфа ?
Т.е отбросить все где есть "0", "NULL", " " ???

Спустя 48 секунд (14.02.2011 - 11:08) Snus написал(а):
RCuPeR
if(!empty($col)){ ... }

Спустя 13 минут, 15 секунд (14.02.2011 - 11:21) RCuPeR написал(а):
Хм... Не знал, я думал empty проверяет только на пустоту, т.е " ".

Так, следующий бок =)))
  foreach($row as $key => $value)
if(!empty($value))
{
$key2 = implode(",", $key);
echo $key2;
}


Почему implode() не принимает значение ?

Warning: implode() [function.implode]: Invalid arguments passed in S:\home\js.ru\www\test.php on line 18

Спустя 2 минуты, 9 секунд (14.02.2011 - 11:23) Snus написал(а):
RCuPeR
Ты используешь foreach даже не зная, что он делает.
echo implode(',', $row)

Спустя 1 минута, 51 секунда (14.02.2011 - 11:25) RCuPeR написал(а):
Твой пример собьёт $vaule в строку, а мне нужно, что бы он $key собрал.

Спустя 5 минут, 30 секунд (14.02.2011 - 11:31) linker написал(а):
$resource = mysql_query("SELECT * FROM photo WHERE id_photo = 1") or die(mysql_error());
if ($row = mysql_fetch_assoc($resource))
{
foreach($row as $key => $value)
{
if (empty($value))
echo $key . '<br>';
}
}

Спустя 2 минуты, 46 секунд (14.02.2011 - 11:34) RCuPeR написал(а):
Извини, но что нового ты поведал ? Мне нужно сбить значения $key в одну строку с разделителем "," ?!

Спустя 4 минуты, 1 секунда (14.02.2011 - 11:38) linker написал(а):
RCuPeR
А подумать?
$empty_columns = array();
foreach($row as $key => $value)
{
if (empty($value))
$empty_columns[] = $key;
}
echo implode(', ', $empty_columns);

Спустя 23 минуты, 39 секунд (14.02.2011 - 12:01) RCuPeR написал(а):
А чёт не додумался. Точнее даже не думал в ту сторону.
Спасибо =)


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

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