Я столкнулся с этой проблемой некоторое время, и я не могу найти правильный ответ в Google. Я не знаю, может быть, мне просто не повезло.
В любом случае, как я могу получить номер строки из определенной записи, которую я ввел из текстового поля PHP, например:
ID NAME
11111 john
11112 roger
11113 ellis
11114 jack
11115 wendy
Поэтому, если я введу 11113, вывод будет выглядеть как «этот идентификатор под номером 3».
Вот мой код:
$id=$_POST['id'];
$query="SELECT COUNT(*) from employee where id like '%$id%'";
$num=mysql_query($query);
echo "this ID is at number $num";
Кто-нибудь может указать, где я ошибся?
Вот пример запроса о том, как вы можете сделать это без добавления еще одного столбца для подсчета:
SELECT e.*,b.count FROM employee as e, (SELECT COUNT(*) as count FROM employee WHERE id <= 3) as b WHERE e.id = 3
Использование другого запроса выбора для подсчета всех строк с id
меньше чем id
запрошенный
Или, если вы хотите только смещение строки без ее данных:
SELECT COUNT(*) as count FROM employee WHERE id <= 3
Сначала вы должны выбрать * из таблицы сотрудников
Затем проанализируйте результат в массив,
Сканируйте вышеуказанный массив (шаг 2) и найдите ваше значение (11113)
Если (3) найдено, вы можете вернуть индекс массива.
Первым делом:
Вы используете старый PHP-метод для базы данных, используйте PDO
Если вы не хотите получить последний идентификатор вставки, его можно поймать с помощью PDO
И я не понимаю ваш SQL, потому что вы хотите получить идентификатор, фильтруя по этому идентификатору? И когда ваш идентификатор INTEGER / NUMBER, то ваше утверждение бессмысленно.