Общие > Базы данных

SELECT определеную строку

<< < (3/4) > >>

Xander:
Yukko
Это скорее к fidget вопрос, она лучше меня в этом разбирается.
Но я бы с составными ключами связываться не стал. К примеру работать они должны ощутимо медленнее, чем численный ID. Или вот, допустим, надо тебе передать ID скрипту. С числом все ясно, а вот с такой парой уже сложнее - а вдруг там ники на руском?..
 А в какой кодировке клиент их посылает?...

В общем возможны проблемы.

А автор темы так и не сказал, что ему в конечном итоге нужно.

новичок:
Не в этом дело...

Дело в том что я скриптом разбираю $n`ую строку в масиве и потом кидаю ее в корзину покупок...
сейчас этот работает на текстовом файле вот так:


   // открыли файл, $n это номер строки
   $f=file("./shop.txt") or die("файл не найден");
   // и получили нужную строку с товаром (в массив $o)
   $o=explode("\\\\",$f[$n]);

   $id=$o[0];
   if (isset($t[all][$id])) return; // если товар уже в корзине - выход

   $t[all][$id]=$id;    // флаг, благодаря которому, двумя строчками выше
                        // мы определили, что товар уже есть в корзине
   $t[$id][name]=$o[1]; // наименование
   $t[$id][info]=$o[2]; // инфо
   $t[$id][cena]=$o[3]; // и д.р. не значащие данные
   $t[$id][kol]=1;      // кол-во в начале равно "1 штуке"

а мне надо просто вывести в переменую $o строку из БД!

Как это сделать?

fidget:
Xander, есть два направления по поводу назначения первичных ключей: естественные ключи (в данном случае комбинация имя+ник) и искусственные (ID). Эффективность того или иного подхода зависит от конкретной задачи.


новичок, тебе уже сказали, что нет такого понятия как номер строки в базе данных. Физический порядок размещения данных на диске, конечно есть, а порядка строк в таблице - нет. Потому, для того что бы вывести определенную строку , выбираются критерии выборки. Как тебе уже сказали - это может быть искусственно веденный ID, это может быть комбинация имени и ника и т.д.
опередлись по каким тебе критериям нужно выбирать строку и используй дальше SELECT, WHERE, ORDER BY и LIMIT.

Xander:
fidget
а на каких классах задач эффективнее естественные ключи?
Да, я имел в виду задачи, где естественные ключи составные.

Yukko:

--- Цитировать ---новичок:
Вопрос, есть строки:
------------------------------
name | nick
------------------------------
sasha | ibsn
anton | bostaf
kozel | sam takoi
...
--- Конец цитаты ---


--- Цитировать ---новичок:
// открыли файл, $n это номер строки
   $f=file("./shop.txt") or die("файл не найден");
   // и получили нужную строку с товаром (в массив $o)
   $o=explode("\\",$f[$n]);

   $id=$o[0];
   if (isset($t[all][$id])) return; // если товар уже в корзине - выход

   $t[all][$id]=$id;    // флаг, благодаря которому, двумя строчками выше
                        // мы определили, что товар уже есть в корзине
   $t[$id][name]=$o[1]; // наименование
   $t[$id][info]=$o[2]; // инфо
   $t[$id][cena]=$o[3]; // и д.р. не значащие данные
   $t[$id][kol]=1;      // кол-во в начале равно "1 штуке"
--- Конец цитаты ---

Мля, почувствуйте разницу!

У любого товара в реальной жизни есть код, по-другому номенклатура. Номенклатура не обязательно должна располагаться по порядку. Тот тавар, который у тя в корзине, и тот который в БД ты можешь сравнить по номенклатуре, т.е. по его коду, вывод информации из БД осуществляется подобным путем:

До тех пор пока есть в корзине товары
 Начало:
 1. запросом, вывести название, вес, и цвет товара, где его  
 номенклатура равняется той, что у тебя в корзине.
 2. показать результаты запроса к БД
 Конец:

Наш преподаватель баз данных говорил:

--- Цитировать ---изучите предеметную область!!!
--- Конец цитаты ---

Навигация

[0] Главная страница сообщений

[#] Следующая страница

[*] Предыдущая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии