2015-05-12 4 views
0

Я хочу сделать отборное заявление, но его просто не работает Вот что Im пытается сделатьSELECT * FROM * TABLENAMES

SELECT * 
from table 
WHERE FROM any ROW Pick that $value_id 
and indentify the column and display the column_name into a variable 

Вот мой попытался код:

$id = $_GET['id']; 
$sql = mysql_query("SELECT * from table2 WHERE ANYROW_VALUE=$id"); 
$selected = mysql_fetch_assoc($sql); 
$ROW_NAME=mysql_field_name($selected); 

Кроме того, идентификатор придет в разных COLUMNS, поэтому я хотел бы отобразить все столбцы с помощью либо {или WHILE ... Но сначала я хочу узнать, как я могу получить это далеко, спасибо!

Нельзя путать $ id, а не идентификатор таблицы, это всего лишь пронумерованное значение от 1 до 8000, также это число может быть в одной строке, но не в одном столбце, поэтому, когда я сделал таблицу Я установил каждый столбец для уникальной еще одной вещи. Столбцы становятся все больше и больше, так как это может быть 1-50 столбцов, поэтому я задал этот вопрос, было нормально, если размер столбца не изменился, но он делает это. . благодаря !

Thankyou все быть здесь, это как таблица выглядит как грубый эскиз: http://i.imgur.com/rQPBZrv.png

+0

Неужели никто не знает, как или трудно понять вопрос? – user4316754

+0

Извините, но «идентификатор» строки не может быть в разных столбцах. Вы пропустили понимание идеи ID. Я предполагаю, что вы ищете «индекс поиска», который содержит значение всех столбцов. – arkascha

+0

где '*' в коде 'SELECT'? –

ответ

0

Вы действительно должны пересмотреть свой дизайн базы данных, если вы добавляете все больше и больше столбцов в базе данных.

Чтобы решить эту проблему, вы хотите запустить два запроса, вперемешку с PHP

ваш первый запроса

mysql_query("SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename'"); 

Вы затем цикл, хотя имена столбцов, чтобы построить свой WHERE для второго ввода запроса рекомендовал бы вставить имена столбцов в array, так что вы можете использовать implode как так

foreach($result as $columnName){ 
    $columnArray[] = '`' . $columnName . '` = ' . $id; 
} 

т вы бы выполнили ваш запрос

mysql_query("SELECT * FROM `yourtablename` WHERE " . implode(' OR ', $columnArray)); 
+0

wait this is not PHP ... Как ... Позвольте мне попробовать и ... можно ли поместить это в PHP? – user4316754