PHP MYSQL Показать весь столбец - PullRequest
0 голосов
/ 23 августа 2011

У меня есть страница, и я хочу, чтобы отображался только мой столбец имени, а не возраст или что-либо еще. В соответствии с этим, хотя я хочу показать весь столбец возраста и т. Д., Поэтому я не хочу создавать несколько баз данных с именем, которые я хочу просто создать на большой базе данных, которая называется via: SELECT * FROM database Предложение * * 1002

Ответы [ 5 ]

5 голосов
/ 23 августа 2011
$sql = "SELECT name, age, blah, blah FROM table";
$result = mysql_query($sql) or die(mysql_error());

$names = $ages = $blahs = array();

while($row = mysql_fetch_assoc($result)) {
    $names[] = $row['name'];
    $ages[] = $row['age'];
    $blahs[] = $row['blah'];
}

... output names ...
... output ages ...
... output blahs ...
1 голос
/ 23 августа 2011

Если вы прочитаете все содержимое этого запроса в массив (вы можете прочитать о mysql_fetch_assoc () на php.net), вы сможете выводить содержимое любым удобным вам способом.

0 голосов
/ 23 августа 2011

У меня есть страница, и я хочу отображать только мое имя столбца, а не возраст или что-либо еще.Под этим я хочу показать весь столбец возраста и т. Д.

Это утверждение кажется нелогичным.Вы определенно захотите уточнить, что вы пытаетесь сделать, возможно, с некоторыми примерами.Но для меня это звучит так, будто вы хотите отобразить только определенное подмножество столбцов.Не один столбец, но в то же время не все столбцы.

Прежде всего, вам не нужно отображать все, что возвращается из вашего заявления SELECT.Вы можете сделать SELECT * FROM table и отобразить только соответствующие поля.

Более важно то, что когда вы указываете имя столбца, вы не ограничены только одним столбцом.Вы можете указать несколько, например: SELECT name, age, some_other_column FROM table

Когда вы говорите что-то вроде SELECT * FROM database, меня немного беспокоит, что вы хотите выбрать все из вашего всего база данных в память.Если это ваше намерение, пожалуйста, не идите по этому пути.Реляционные базы данных очень хороши в оптимизации запросов, поэтому нет ничего плохого в том, чтобы отправлять им много запросов.Это не значит, что у вас должно быть слишком много поездок в базу данных, но наличие всего приложения зависит только от одной поездки в базу данных, что делает его немного далеким.(Если это не было вашим намерением, ничего страшного. Я просто хочу убедиться.)

Звучит так, как будто вы пытаетесь выразить идею JOIN в своем запросе SELECTи просто возникают проблемы с формулировкой.Вы пытаетесь получить данные из нескольких таблиц за одну поездку в базу данных?Если да, пожалуйста, покажите нам свои структуры таблиц.Еще одна вещь, которую реляционные базы данных очень хорошо умеют делать, - это поворот данных между разными таблицами для представления разных представлений данных.И даже могут быть некоторые структурные изменения, которые вы можете внести в модель данных, чтобы улучшить этот процесс.

0 голосов
/ 23 августа 2011

Если я правильно понимаю, вы просто хотите:

SELECT name FROM database;

Или вообще:

SELECT column-name FROM table-name;
0 голосов
/ 23 августа 2011

Если у вас есть стол вроде

table1
-----------
id integer
name varchar(30)
age integer
sex enum('male','female')
pretty enum('yes','no','mwha')

Вместо того, чтобы делать SELECT * FROM table1

Вы делаете

SELECT name FROM table1 
WHERE age BETWEEN 20 AND 30 
      AND sex = 'female' 
      AND pretty = 'yes'

Если вы хотите знать все имена по возрасту, вы делаете

SELECT age, group_concat(name) as names 
FROM table1
WHERE age BETWEEN 20 AND 30 
      AND sex = 'female' 
      AND pretty = 'yes'
GROUP BY age

В php вы затем explode имена в поле names.

См:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
http://php.net/manual/en/function.explode.php

Если вы хотите отобразить поля ниже одного и другого, вы можете использовать следующий код ужаса:

Код ужаса

SELECT name AS col1 FROM table1 WHERE ....
UNION
SELECT '*****' as col1
UNION
SELECT age AS col1 FROM table1 WHERE ....
UNION
SELECT '*****' as col1
UNION
......

И перебрать результаты, используя '*' в качестве маркеров конца цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...