Могу ли я выбрать индекс в моей базе данных по 'index', а не по 'name' в php mysql? - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть это заявление в php

$rating[0] = $ratings['rating_one'];

и, как вы можете видеть, он выбирает столбец с именем «rating_one».

Можно ли выбрать столбец, используя номер вместо имени? т.е.

$rating[0] = $ratings[1];

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

Если массив создается с помощью mysql_fetch_array, то использование MYSQL_NUM или MYSQL_BOTH также заполнит целочисленные ключи массива. MYSQL_BOTH - это значение по умолчанию, поэтому, если вы еще не проверили, оно может работать без необходимости делать что-либо еще. Это (или нечто подобное) будет правильным решением проблемы.

Тем не менее, в качестве упражнения, возможно, будет возможно "понюхать", каким будет целое число каждого столбца, потому что массивы в PHP - это упорядоченные контейнеры. Итак, мы можем сделать это:

$keys = array_flip(array_keys($rating));

// Now you can index using an integer like this:
$itemWithIndex1 = $rating[$keys[1]]; // key 1 == second element  

Я предполагаю, что $rating имеет только строковые ключи; в противном случае вышеизложенное никогда не будет работать правильно. И помните: даже если это работает, это неправильный способ сделать это!

0 голосов
/ 01 апреля 2011

Нет.Нет прямого соответствия между строковым ключом и числовым ключом.Единственное странное исключение, о котором я могу думать, это массивы, созданные mysql_fetch_array.Режим выборки по умолчанию - создание с цифровыми и строковыми ключами.

Но если вы не создадите массив самостоятельно, то сделать 0 = rating_one

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