Как Лучше Извлечь Инфу Из Бд

Статус
Закрыто для дальнейших ответов.

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Здравствуйте!
У меня возникла небольшая проблемка.
Есть база данных с большим количеством информации.
В ней 560 столбцов: id , entry , 1-588
Записей около 400. В базе не все столбцы заполнены. Т.е. например для записи с id=78 заполнены поля только в 36 и 478 столбце.
Проблема такая, как сдлеать обычный вывод столбца я знаю, а как сделать так чтоб вывести эти столбцы выбранной строки разом и между данными не было лишних пробелов? Можно было бы конечно после принта прописать 588 раз $top['N'], где N - количество столбцов, но это очень очень не удобно + те столбцы где пусто остявят пробел.

$result = mysql_query("SELECT * FROM db WHERE id = 78");
if ($resukl)
{
while ($top = mysql_fetch_array($result));
print ______ ;
}
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
А не легче ещё один цикл! :blush:

Код:
$result = mysql_query("SELECT * FROM db WHERE id = 78");
if ($result)
{
while ($top = mysql_fetch_array($result))
{
for($i = 0; $i < count($top); $i++) echo $top[$i];
}
И ещё совет, когда выбираешь одну строку из таблицы например по id(условию), то никакой цикл while вовсе не нужен

Код:
$result = mysql_query("SELECT * FROM db WHERE id = 78");
if ($result)
{
$top = mysql_fetch_array($result);
for($i = 0; $i < count($top); $i++) echo $top[$i];
}
Если я чего-то не понял, поставьте вопрос конкретнее...
 

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Код:
$запрос = mysql_query("SELECT * FROM база WHERE id = " . $_GET['id']);
if ($spec)
  {
		  while ($top = mysql_fetch_array($запрос))
		  {
		  for($i = 0; $i < count($top); $i++)
		  echo $top[$i];
		  }
  }
Спасибо за код, только теперь вот такой нюанс...
он мне выводит ID записи и без пробелов инфу из столбцов... например:
85АпельсинЯблокоАрбузБанан
ну и т.д.))
Можно ли как-то убрать вывод ID ну и чтоб хоть какие то пробелы между данными)) ну запятая на крайняк)) а то вообще не читаемо:)
 

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Спасибо:) осталось придумать как ID убрать. Наверно он из-за того что Селект у нас * , но писать место * цифры от 1 до 588 лень)) мб есть другой выход?:)
 

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Когда место * подставляю числа 1,2,3,4 и т.д. то выводит почему то эти самый цифры... Если место * пишу entry то данные выводит нормально. В чём может быть проблема?
 

sciko

Well-Known Member
Регистрация
22.12.2006
Сообщения
164

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Всё спасибо огромное, сделал, ещё вопрос уже просто для интереса.
Вот вы советовали сделать пробел таким вот образом:
Код:
echo $top[$i].' ';
для вывода пробела.
Всё работает, хорошо, а вот если место .' '; поставить .', ' (запятую) или .'<br>'; то уже между данными начнутся большие пробелы или много запятых будет (в таблице между данными есть по 10-20 пустых ячеек и после каждой пустой ставится запятая, получ. ***,,,,,,***,***)
Как то возможно это обойти?:)
 

Nordway

Active Member
Регистрация
06.08.2007
Сообщения
41
Как то возможно это обойти?:)
Можно. Особенно если почитать про проектирование БД.
Ну знаю что нужно было с самого начала всё продумывать, но просто базу подогнали (не моя) и сейчас поменять там что-то не представляется возможным, поэтому может подскажите как норм вывести:)
 

ZitosS_32

Совесть
Регистрация
12.03.2006
Сообщения
852
Есть специальные функции, которые преобразуют строку, убирая лишние знаки, но там используется маскировка по средствам языка RegEX. Я сам не знаю какой алгоритм надо составуить чтобы, например из строки убрать все лишние "," встречающиеся меж словами
 

sciko

Well-Known Member
Регистрация
22.12.2006
Сообщения
164
А что тут сложного?
Код:
$string=preg_replace(",","", $string)//удаляем все запятые
Код:
$string=preg_replace(",+",",", $string)//удаляем повторяющиеся запятые
 
Статус
Закрыто для дальнейших ответов.
Верх Низ