Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Номер по порядку в базе.
Форумы портала PHP.SU » » Вопросы новичков » Номер по порядку в базе.

Страниц (1): [1]
 

1. ytrewq123 - 06 Ноября, 2015 - 06:06:57 - перейти к сообщению
Здравствуйте!
У меня вот такой вопрос.

Мне надо чтобы в базе (для меня самого). Были записи пронумерованы по порядку(Не важно, куча там или две. Надо чтобы визуально было по порядку) . Не зависимо какая цифра у ИД. И что-бы при добавлении или удалении эти цифры по порядку перезаписывались.
Вроде всё ясно. После записи, удаления. Подсчитал сколько строк, закинул в ФОР и…
А вот тут вопрос, как мне действие ФОР засунуть в Базу или соединить с изменениями в базе.

PHP:
скопировать код в буфер обмена
  1.  $zapros="INSERT INTO peregon (imja, familija, tekst, vremja, mes) VALUES (?,?,?,?,?)";
  2. $podgotovka= mysqli_prepare($soedinenie,$zapros );
  3.  
  4.  
  5. $zapros=("SELECT COUNT(0) AS ROW_COUNT FROM tablica_1");
  6. $rezultat = mysqli_query( $soedinenie, $zapros);
  7. $stroka=mysqli_fetch_array($rezultat);                 
  8.  
  9. for($i=0; $i<$stroka[0]; $i++)
  10. {           }
  11.  
  12.  
  13. $zapros="UPDATE tablica_1 SET nomer = '?????????' ";
  14. $rezultat = mysqli_query( $soedinenie, $zapros);            
  15.  
2. Viper - 06 Ноября, 2015 - 08:38:17 - перейти к сообщению
ytrewq123 пишет:
А вот тут вопрос, как мне действие ФОР засунуть в Базу или соединить с изменениями в базе.

никак. Отдельный UPDATE на обновление порядкового номера в БД. Кстати не рекомендую делать это без особой необходимости(ОСОБОЙ!!!), т.к. затратная по ресурсам операция.

В for делаете update запрос. И, могу конечно ошибаться, но лучше через транзакцию делать такое обновление.
3. ytrewq123 - 06 Ноября, 2015 - 16:44:05 - перейти к сообщению
Спасибо.
Значит ни как иначе нельзя. Только прокручивать этот запрос. В ФОР столько раз сколько записей.
Я понимаю, что это не совсем умно. Но так хотят.
Ладно посмотрим. Почитаем.
4. DeepVarvar - 06 Ноября, 2015 - 16:48:48 - перейти к сообщению
ytrewq123 пишет:
для меня самого
ytrewq123 пишет:
Но так хотят
Вас что там, много в нём самом?

Выводи во время отображения для них/себя сгенеренные порядковые номера и не парь никому, в том числе и себе, мозги.
5. ytrewq123 - 06 Ноября, 2015 - 18:32:28 - перейти к сообщению
ХА ХА ХА
Да при выводе. На мониторе всё красиво нумерует. И всё в порядке.

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $qaz=0;
  4. while($stroka=mysqli_fetch_array($rezultat, MYSQLI_ASSOC)){
  5.  $qaz++;
  6.  


Но есть желание видеть. Тама.
Ладно спасибо. Подумаю ещё немного.
(Добавление)
Извините, подскажите пожалуйста. Что-то не получается.
Вроде запрос непроходит. И проблема в том что всем даёт последнее значение $i.
Что-то не пойму.

PHP:
скопировать код в буфер обмена
  1.  
  2. $i=0;
  3.  for( ;$i<$stroka[0]; )
  4. {          
  5.   $zapros="UPDATE tablica_1  SET cifra = '$i' ";
  6.  $rezultat = mysqli_query( $soedinenie, $zapros);  
  7.  $i++;
  8. }
  9.  


Думал что-то не правильно делаю в ФОР. Попробовал с while также.
Попробовал так. Вроде запрос проходит, ибо долго мучается, но в базе значения $i 0.

PHP:
скопировать код в буфер обмена
  1.  
  2. $i=0;
  3.  for( ;$i<$stroka[0]; )
  4. {          
  5.   $zapros="UPDATE tablica_1  SET cifra = '$i++' ";
  6.  $rezultat = mysqli_query( $soedinenie, $zapros);  
  7.  
  8. }
  9.  
6. Viper - 06 Ноября, 2015 - 20:48:24 - перейти к сообщению
не проще написать?
$stroka[0] - это вообще что?
7. ytrewq123 - 07 Ноября, 2015 - 03:10:22 - перейти к сообщению
Это сколько строк после подсчёта в базе.
Может и проще. Я так написал. Просто, сомневался. Всё ли правильно. Но пиши как хочешь. Результата пока нет.
8. DeepVarvar - 07 Ноября, 2015 - 03:37:31 - перейти к сообщению
ytrewq123 пишет:
$rezultat
ytrewq123 пишет:
$stroka
ytrewq123 пишет:
$soedinenie
ytrewq123 пишет:
$zapros

Чего мелочиться, сразу бы вот так писал (работает же):
PHP:
скопировать код в буфер обмена
  1. $кваз = 0;
  2. while ($строка = mysqli_fetch_array($результат, MYSQLI_ASSOC)) {
  3.     $кваз++;
Хуже уже точно не будет.
ytrewq123 пишет:
Результата пока нет
И не нужен.

 

Powered by ExBB FM 1.0 RC1