@freeman0204

Как вывести номер строки но не id?

Делаю через админку добавление нового слайда. В слайдере есть такой атрибут data-numb-slide там считается номер слайда, но так как я делаю это через php то вставил туда такой код <?= $stores['id']?>сам слайдер обернут в <?php foreach ($our_stores as $stores): ?>.
Проблема в том что я удалял не которые строки с БД и id уже не начинается с 1, да даже когда он начинался с 1 то почему то в слайдере считалось с 2.
Что можно вывести кроме id что бы показывало фактический номер строки скажем так, так как айди не всегда совпадает.

Выбор с базы идет таким образом
function our_stores() {
    $result = mysql_query("SELECT * FROM stores");
    while ($row = mysql_fetch_assoc($result)) {
      $count++; // нужно ставить перед $res_array
      $res_array[$count] = $row;
    }
    return $res_array;
  }

Может с ним что то не так?
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
gobananas
@gobananas
finishhim.ru
Делайте через for а не через while и тогда $i это и будет номер строки ну или:
function our_stores() {
    $n = 1;
    $result = mysql_query("SELECT * FROM stores");
    while ($row = mysql_fetch_assoc($result)) {
      $count++; // нужно ставить перед $res_array
      $res_array[$count] = $row;
      $res_array[$count]['num'] = $n; // Это и будет номер строки
      $n++;
    }
    return $res_array;
  }
Ответ написан
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
$count++; // нужно ставить перед $res_array
$res_array[$count] = $row;

Вот эту строку можно сократить до
$res_array[] = $row;

PHP сам пронумерует индексы массива, начиная с нуля и выше, соответственно. Единственное, что меня смущает, переменные $res_array и $count не объявлены до их использования.

Далее, Вы можете выводить слайды с их номерами, основываясь на индексе массива, или без него (если индексы не числовые или их нумерация сбита), одним из вариантов:

1. По индексу (ключу) массива:
foreach($res_array as $k => $v) {
    print $k.'<br/>'; //Ключ (индекс) массива
}


2. Игнорируя индекс (ключ) массива:
for($i = 0; $i < count($res_array); $i++) {
    print $i; //индекс
}


Вы так же можете модифицировать примеры для своего удобства, если нужна нумерация, например с единицы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы