2013-11-15 2 views
0

Так что я пытался писать код на PHP. Моя цель состояла в том, чтобы написать общий код для операций mysql get. Для экземпляра я хотел бы передать имя таблицы и от и до значений, чтобы вернуть результат в виде JSON, как показано ниже.сортировать по убыванию от mysql

function get($table, $from, $to) { 
    $q = mysqli_query('select * from '.$table.' limit '. $from.', '.$to); 
    // do some more 
    return json_encode($arr); 
} 

Приведенный выше код даст результат. как и ожидалось. Теперь проблема, с которой я сталкиваюсь, - это когда я хочу, чтобы мой код возвращал значения, зависящие в порядке убывания, в зависимости от столбца auto_incrment ed моей таблицы. Я полностью застрял в этом.

Раньше я делал это так, когда мне не нужен геричный код.

select * from tablename order by auto_inc_col limit 0,10

Я попытался с помощью Google, чтобы получить ответы на некоторые вопросы относительно того же. Но это не получилось. По моему опыту я должен указать имя столбца, которое я не могу с кодом, который я сейчас пытаюсь написать.

Теперь мой вопрос в этом. Можно ли динамически указывать имя столбца через любой из запросов mysql. Если возможно Как? Или я должен выйти из этого общего кода и начать писать код для каждой таблицы отдельно? Пожалуйста, помогите мне выйти из этой проблемы.

+0

Является ли столбец auto_inc всегда первым столбцом в определении? – Strawberry

+0

@ Струберри да сэр. – Vinay

+1

ORDER BY 1 DESC - но обратите внимание, что с вашим нынешним подходом возникают проблемы с безопасностью. Обычно такого рода недостатки можно избежать! – Strawberry

ответ

1

Я не совсем уверен, что вы просите, но не поможет ли что-то подобное?

function get($table, $from, $to) { 
    $q = mysqli_query('select * from '.$table.' order by auto_inc_col DESC limit '. $from.', '.$to); 

У вас могут быть переменные $ sortCol и $ sortOrder.

+1

Это то, что мне нужно. Я просто хотел получить все записи в порядке убывания. Чтобы получить этот заказ, мне нужно указать имя столбца. Но я не могу, поскольку у меня нет возможности получить динамическое имя столбца. Поэтому у меня проблема с получением упорядоченного вывода. По совету @ Strawberry это работает. Снова он говорит, что «есть проблемы безопасности с моим нынешним подходом». Бит перегружен сегодня. Но спасибо за последнее предложение в вашем посте. Это может помочь мне. – Vinay

Смежные вопросы