|
|
|
| Есть один запрос к базе...надо вывести отдельно одно поле, а затем всё из таблицы...Проблема в том что конфликтует mysql_fetch_array при повторном использовании: первый раз для вывода одного поля
$resultc=mysql_query("sELECT * FROM pages where id=1");
if(mysql_num_rows($resultc)>0){
$myrow=mysql_fetch_array($resultc);
}
<?php echo $myrow['title']; ?>
Вывод всего:
while(($blocks=mysql_fetch_array($resultc))>0) { Вывод всей таблицы}
|
| |
|
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 13:49)
| | Спасибо! | |
|
|
|
|
|
|
|
для: OLi
(11.06.2010 в 13:36)
| | Вот это
while(($blocks=mysql_fetch_array($resultc))>0) { Вывод всей таблицы}
|
После этого запроса
$resultc=mysql_query("sELECT * FROM pages where id=1");
|
Никак всю таблицу не выведет. И дело не в конфликтах.
Перед выводом вывести всей таблицы нужно менять запрос
$resultc=mysql_query("sELECT * FROM pages");
|
PS И где вы таким чудесным циклам научились?
while(($blocks=mysql_fetch_array($resultc))>0)
|
| |
|
|
|
|
|
|
|
для: Axxil
(11.06.2010 в 13:50)
| | Никак всю таблицу не выведет. И дело не в конфликтах
нет, ты не ёлка, ты папоротник)))
для такого серьезного заявления нужно знать что такое id(оно может содержаться в каждой строке и быть равно единице)
да и в любом случае запрос селект всегда возвращает таблицу, пусть даже состоящую из одной строки, но таблицу(!) | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 14:02)
| | А вы логику включите, если во всей таблице id равно 1, то нахрена это поле нужно? Другое дело, что таки надо было уточнить некоторые нюансы.
А вообще, знаете, select возвращает строки из таблицы в виде отдельных данных, но никак не таблицы. | |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 15:38)
| | то нахрена это поле нужно?
понятия не имею на хрена, но не исключаю такой возможности...
идентификатором строки может являться поле например с именем balalaika, а id может являться идентификатором строки другой таблицы и при удачном стечении обстоятельств встретиться во всех строках таблицы (может время id=2 еще не наступило)
___
моя логика далека от чьей-то таблицы ;) | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 22:33)
| | Но если время id=2 теоретически наступить может, то уже нельзя сказать, что с помощью "select..where id=2" мы сможем вытащить все строки из таблицы. | |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 22:52)
| | слова { Вывод всей таблицы} относятся к результирующей таблице которая образуется в результате запроса SELECT, которую Вы кстати с успехом можете использовать во FROM
SELECT * FROM (SELECT * FROM tbl)
|
| |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 23:16)
| | Вы мне сейчас мозг пытаетесь вынести?
Я ответил вам, а не автору, и не на его вопрос (т.к. на него вы уже ответили), а на ваши слова о том, что select возвращает таблицу. Я сказал, что select никаких таблиц не возвращает. Но, да, конечно, таблицу из данных, которые вернет select построить можно. | |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 23:28)
| | селект возвращает таблицу и ничего кроме таблицы
количество полей одной строки результата запроса не может отличаться от количества полей другой строки этого же запроса - это та-бли-ца
____
вынести может и не вынесу, но надгрызу основательно :) | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 23:40)
| |
SELECT применяется для извлечения строк, выбранных из одной или нескольких таблиц.
|
(c) http://www.mysql.ru/docs/man/SELECT.html
P.S.
Таб-ли-ца, а не та-бли-ца. | |
|
|
|
|
|
|
|
для: neadekvat
(11.06.2010 в 23:44)
| | реляционная
:) | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 23:55)
| | Кхм, пардон..Ичо?
Я знаю, что из себя представляет реляционная база данных. | |
|
|
|
|
|
|
|
для: neadekvat
(12.06.2010 в 00:04)
| | выходит что не знаете | |
|
|
|
|
|
|
|
для: Valick
(12.06.2010 в 00:06)
| | Я вам привел цитату и ссылку на страницу из документации, повествующую о том, что возвращает select.
Вы мне дали ссылку на страницу, рассказывающую о СУБД.
Как ваша ссылка относится к теме?
Я надеюсь, следующий ваш пост будет наполнен конкретикой и выводами, к тому же, по теме :) | |
|
|
|
|
|
|
|
для: neadekvat
(12.06.2010 в 00:14)
| | Вы мне привели цитату и ссылку на вольный перевод(!) документации
я вам привел ссылку на авторов этого форума..
В реляционных базах данных данные собраны в таблицы, которые в свою очередь состоят из
столбцов и строк, на пересечении которых расположены ячейки. Запросы к таким базам данных
возвращает таблицу, которая повторно может участвовать в следующем запросе. Данные в одних
таблицах, как правило, связаны с данными других таблиц, откуда и произошло название
"реляционные".
|
| |
|
|
|
|
|
|
|
для: Valick
(12.06.2010 в 00:22)
| | Это, пожалуй, единственное подобное изречение во всем гугле.
Пожалуйте-с:
SELECT is used to retrieve rows selected from one or more tables
|
(с) http://dev.mysql.com/doc/refman/5.0/en/select.html | |
|
|
|
|
|
|
|
для: neadekvat
(12.06.2010 в 00:26)
| | угу, абсолютно согласен :)
Селект предназначен для выборки строк, а результатом работы селекта - будет таблица :)
даже если она состоит из одной строки(более того даже если она состоит из одного столбца) - в сущности это таблица | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 23:40)
| | вообще-то neadekvat прав - SELECT никакую таблицу не возвращает.
Он возвращает табличный результат. Вернее, даже набор строк табличного результата.
Таблица, всё ж - нечто большее. | |
|
|
|
|
|
|
|
для: Trianon
(12.06.2010 в 04:04)
| | единственное отличие результирующей таблицы от исходной - это то что она не имеет названия (если не использовать AS и даже в этом случее сильно сомневаюсь что у нее нет "порядкового номера на рукаве")
хотелось бы услышать по нечто большее, что мешает набору строк табличного результата быть полноценной таблицей.
___
могли бы рассказать когда в INSERT SELECT таблица перестает быть таблицей и снова обретает статус таблицы?
___
могли бы прокомментировать вот это:
1. CREATE VIEW temp AS SELECT CONCAT('c','_',id ) AS ID,
2. company_name AS name, 'customer' AS parent
3. FROM customers
4. UNION SELECT CONCAT( 'p', '_', id ) AS ID, name,
5. CONCAT( 'c', '_', parent ) FROM customers_person
|
| |
|
|
|
|
|
|
|
для: Trianon
(12.06.2010 в 04:04)
| | кстати чем отвечает консоль на запрос SELECT ?
набором строк табличного результата или все таки рисует таблицу? :)
[поправлено модератором: консольный клиент mysql и СУБД MySQL разные программы - не следует их смешивать в контексте обсуждения обработки SQL-запросов] | |
|
|
|
|
|
|
|
для: Valick
(15.06.2010 в 11:46)
| | на запрос отвечает сервер.
клиент этот табличный результат представляет, как может.
Консольный клиент, PMA - визуализируют.
программные интерфейсы (php-шный и т.п.) - формирует буфер массивов.
и т.д.
Но
даже человечьи клиенты не создают таблицу в терминах сервера.
Хотя возможность такая есть, хоть и обглоданная. CREATE TABLE nn SELECT * FROM ... | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2010 в 13:55)
| | даже человечьи клиенты не создают таблицу в терминах сервера.
позвольте таки полюбопытствовать о терминах сервера
сильно сомневаюсь что MySQL берет линейку, мочит карандаш о кончик языка и начинает вычерчивать таблицу на винчестере (CREATE TABLE), а потом пхает туды шо попало.
т.о. то что лежит на винчестере в терминах сервера - это таблица,
а то что возвращает SELECT - это не таблица.
Вот я и пытаюсь понять разницу между ними.
- и там и там есть строки
- и там и там есть поля
- и там и там количество полей одинаково в каждой строке
- и там и там значения, находящиеся в одном столбце таблицы имеют один тип данных
чего именно я не могу понять? | |
|
|
|
|
|
|
|
для: Valick
(15.06.2010 в 15:25)
| | >даже человечьи клиенты не создают таблицу в терминах сервера.
>позвольте таки полюбопытствовать о терминах сервера
>сильно сомневаюсь что MySQL берет линейку, мочит карандаш о кончик языка и начинает вычерчивать таблицу на винчестере (CREATE TABLE), а потом пхает туды шо попало.
>т.о. то что лежит на винчестере в терминах сервера - это таблица,
Нет. То, что лежит на винчестере - это хранилище этой (и возможно других) таблицы.
>а то что возвращает SELECT - это не таблица.
>Вот я и пытаюсь понять разницу между ними.
Очень просто.
У таблицы есть структура. То, что выдает SHOW CREATE TABLE.
И интерфейс чтения (запрос SELECT) и изменения (запросы DML).
Ну и определения (запросы DDL) докучи. | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2010 в 15:46)
| | То, что выдает SHOW CREATE TABLE
отвечу Вашими же словами
на запрос отвечает сервер.
клиент этот табличный результат представляет, как может.
Консольный клиент, PMA - визуализируют
У таблицы есть структура.
неоспоримое замечание...
теперь давайте разберемся куда же девается структура в ответе на запрос SELECT
___
может я чего-то не понимаю, в силу своей врожденной тупости, но...
при реляционной модели БД на входе мы имеем одну или более таблиц, и надо полагать на выходе мы имеем таблицу... вот меня и волнует...
что еще на выходе мы можем получить кроме таблицы? | |
|
|
|
|
|
|
|
для: Valick
(15.06.2010 в 16:02)
| | идеальная реляционная модель таки слегка отличается от SQL-языка.
На выходе идеальной реляционной модели (РМ) мы конечно же получим РМ-таблицу .
При чем мгновенно, одним глотком так сказать, а не построчно, буфферизировано и т.д.
Но боюсь, что там уже не будет никаких ORDER BY, и тем паче LIMIT... :) | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 14:02)
| | Есть такое дело, но у меня на автомате id ассоциируется с инкрементом, поэтому и получилось такое "серьёзное заявление".
Но вообще да, в общем случае может получиться несколько строк и даже (в совсем запущенном случае) вся таблица. | |
|
|
|
|
|
|
|
для: Axxil
(11.06.2010 в 16:30)
| | Я со своим автоматом тоже врюхивался :)
И благо на форуме всегда поправят, сегодня я - завтра меня)
____
круговая порука... | |
|
|
|
|
|
|
|
для: Valick
(11.06.2010 в 22:28)
| | > И благо на форуме всегда поправят, сегодня я - завтра меня
Не даром говорят - одна голова хорошо, а две лучше. Хотя форум имеет еще куда более высокую ценность :) | |
|
|
|