Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6727-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Вопросы по PHP

Glavar
Dec 12 2010, 20:35
  
Пост #1



Репутация:   10  
Активист
*

Группа: Пользователи
Сообщений: 375
С нами с: 11-May 08


Доброго время суток!
1. Скажите как мне обрезать первых 7 знаков, а остальные занести в базу?
2. У меня есть максимальное число голосов припустим 50, как мне присвоить ему 1 место
15 глосов - 5 место
43 голоса - 2 место
28 голосов - 3 место
24 - 4 место и т.д. и что бы место записывалось и обновлялось автоматически в базе данных?

Тема для обговорення мови програмування PHP, всі сторонні коментарі будуть видалятися, а їх автори отримувати %

Сообщение отредактировал BoyKot - Feb 3 2011, 13:22
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
20 Страницы  « < 16 17 18 19 20 >  
Reply to this topicStart new topic
Ответов(340 - 359)
SyntaxError
Mar 14 2018, 12:21
  
Пост #341



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 12:05) Перейти к цитате

SyntaxError,

Если использовать этот код, то как мне в файле update_mysql.php дергать эти значения?
Как пример:
$lmorder1 = $_POST['lmorder1'];
$lmorder2 = $_POST['lmorder2'];
...
$lmstore1 = $_POST['lmstore1'];
$lmstore2 = $_POST['lmstore2'];
...

$sel1 = $_POST['sel1'];
$sel2 = $_POST['sel2'];
...

Так ?

Насколько я понял тебе нужно при клике на кнопку в конкретной строке таблицы обновить данные этой строки. Если так, то в этом случае тебе нужно передать ID строки и значения полей. И на бэкэнде получать их:


$row_id = $_POST['row_id'];

$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];
$sel = $_POST['sel'];


И в зависимости от $row_id записывать в базу.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 12:51
  
Пост #342



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Да, совершенно верно

Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ?
Выделил красными прямоугольниками:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


И еще вопрос, как я узнаю айдишку строки ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 12:57
  
Пост #343



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 12:51) Перейти к цитате

Да, совершенно верно

Получается, айдишки полей инпута в каждой строке должны быть одинаковыми ?
Выделил красными прямоугольниками:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


И еще вопрос, как я узнаю айдишку строки ?

Для инпутов вместо id используй name. id не может повторятся больше одного раза на странице. Также, name берется как ключ при вызове метода serialize или serializeArray.

Когда ты рендеришь таблицу ты можешь указать id для каждой строки:

<table>
    <tr id="1"> ... </tr>
    <tr id="2"> ... </tr>
    <tr id="3"> ... </tr>

        ...

    <tr id="100"> ... </tr>
</table>


Сообщение отредактировал SyntaxError - Mar 14 2018, 13:00
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 13:15
  
Пост #344



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


С id строки понял, добавил, рисуется.
Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно?
Как ключи поиска в бд для апдейта я использую только это:
$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];

и делаю апдейт из этого инпута:
$sel = $_POST['sel'];

И еще, если id не может повторятся, то name может ?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 14:16
  
Пост #345



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 13:15) Перейти к цитате

С id строки понял, добавил, рисуется.
Но как мне использовать эту id на стороне update_mysql.php - не понятно. Или тут оно и не нужно?
Как ключи поиска в бд для апдейта я использую только это:
$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];

и делаю апдейт из этого инпута:
$sel = $_POST['sel'];

И еще, если id не может повторятся, то name может ?

Тогда id для строки тебе не нужен, т.к. у тебя уже все есть. smile.gif

На бэкенде ты получаешь так:

$lmorder = $_POST['lmorder'];
$lmstore = $_POST['lmstore'];
$sel = $_POST['sel'];


И дальше делаешь апдейт базы, где ключи у тебя lmorder и lmstore.

Каждый раз как ты будешь кликать на кнопку конкретной строки таблицы ты будешь передавать в update_mysql.php новые значения.

Да, name может повторяться.

Сообщение отредактировал SyntaxError - Mar 14 2018, 14:19
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 14:48
  
Пост #346



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Что-то не едут лыжи, где-то напартачил...
Вот кусок кода выводом инпутов и кнопок
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

В цикле while я убрал все айдишки и поставил атрибут name
После того, как таблица отрисовывается, я нажимаю на кнопку "оновити статус" но ничего не происходит. Не отрабатывает скрипт:

$('.table-class').on('click', '.button-class', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('.table-row-class');
  var $elements = $row.find('input');

  var data = $elements.serialize();

  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});

Есть подозрение на эти строки:
var data = $elements.serialize();

$.ajax({
type : 'POST',
data : data,

Прошу прощения, но совсем не силен в js
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 15:33
  
Пост #347



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


Классы в JS скрипте поменяй на свои.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 15:46
  
Пост #348



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


(SyntaxError @ Mar 14 2018, 15:33) Перейти к цитате

Классы в JS скрипте поменяй на свои.

Помоги, пожалуйста, я подставил как у меня здесь:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Вышло вот что, но все равно не работает:

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('.table-row-class');
  var $elements = $row.find('input');

  var data = $elements.serialize();

  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 16:00
  
Пост #349



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


Вместо .table-row-class поставь класс с <TR>, или просто укажи 'tr'.

А вообще можешь использовать console.log() для дебага JS в браузере и смотреть что у тебе приходит в переменную.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 17:02
  
Пост #350



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Испавил, для теста поставил console.log статический, но уведомление не прилетает.. Видать не доходит дело до этого. Где я напартачил?

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('tr');
  var $elements = $row.find('input');
console.log('haha');
  var data = $elements.serialize();
  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SyntaxError
Mar 14 2018, 17:17
  
Пост #351



Репутация:   440  
Ветеран
*****

Группа: Пользователи
Сообщений: 7 467
С нами с: 7-December 12


(mzk @ Mar 14 2018, 17:02) Перейти к цитате

Испавил, для теста поставил console.log статический, но уведомление не прилетает.. Видать не доходит дело до этого. Где я напартачил?

$('.blueTable').on('click', '.button', function( event ) {

  var $button = $(event.target);
  var $row = $button.closest('tr');
  var $elements = $row.find('input');
console.log('haha');
  var data = $elements.serialize();
  $.ajax({
    type : 'POST',
    data : data,
    url : "update_mysql.php",
    success : function(result){
      alert(result);
      $elements.val('');
    }

  });

});



скинь кусок html своей таблицы. а то вслепую тяжело сказать.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 17:53
  
Пост #352



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Скопировал элемент из гугл хрома:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


кнопка "Оновити статус" рисуется только есть в базе mysql есть значение статуса для этого заказа.
в другом случае - рисуется кнопка "зібрати"

Сообщение отредактировал mzk - Mar 14 2018, 17:58
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Mar 14 2018, 22:24
  
Пост #353



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Хух, ребята.
Методом тыка и гугла, я решил вопрос. Проблема была вот здесь:
Было:

$('.blueTable').on('click', '.button', function( event ) {

Стало:

$(document).on('click', '.button', function( event ) {

Так же, я сделал еще 2 отдельных класса для кнопки "Оновити статус" и "Зібрати" чтобы хендлить запросы точно так же.
Апдейты запустились smile.gif

Осталось разобраться только в одном:
Почему русские буквы не уходят из этого инпута в БД ?
Алерты jquery возвращает с русскими буквами, а когда проверяю таблицу, то апдейт не проходит.

Через сам mysql workbench апдейты работают, таблицы с кодировкой uft8_general_ci
html и рhp тоже с кодировкой uft8
[s]

Всем большое спасибо! drinks.gif

Сообщение отредактировал mzk - Mar 14 2018, 23:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jun 19 2018, 18:22
  
Пост #354



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Камрады, каким образом с помощью PHP можно разделить следующую траблицу?
Open in new windowIPB Image

Делаю селект из БД за последние N-минут и получаю результат, как на скрине.
Уникальное значение - первый столбик

Нужно условно "загнать" эти четыре разные части в переменные\массивы. Как?

Спасибо smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
YaAllex
Jun 20 2018, 20:54
  
Пост #355



Репутация:   80  
Постоялец
***

Группа: Пользователи
Сообщений: 1 184
С нами с: 15-November 11


(mzk @ Jun 19 2018, 19:22) Перейти к цитате

Делаю селект из БД за последние N-минут и получаю результат, как на скрине.

Результат селекта в виде чего получаете(массив, массив объектов)?

Сообщение отредактировал YaAllex - Jun 21 2018, 12:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jul 27 2018, 17:57
  
Пост #356



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива...
Как пример, кусок массива:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «

Пробовал вот так:

$all_orders - массив под спойлером
            foreach ($all_orders as $lmo) {
                echo $lmo[0]['tra_id']."<br>";
            }

На выходе:
1037214
388625
556432
58964


Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть?

russian_ru.gif

Сообщение отредактировал mzk - Jul 27 2018, 17:57
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Jul 27 2018, 18:25
  
Пост #357



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


(mzk @ Jul 27 2018, 18:57) Перейти к цитате

Парни, застрял... Не могу сообразить как мне получить инфу со всех массивов внутри массива...
Как пример, кусок массива:
...
Получаю только самые первые значения. Это я понимаю, а как достать все остальные из каждого вложенного массива? Цикл в цикле? Как обыграть?

russian_ru.gif


Чашка кофе помогла smile.gif
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Но задумка не очень помогла...
Как можно из этой всей кучи массивов сделать один массив средствами php ?
Нужно сортировать вывод инфы...

Сообщение отредактировал mzk - Jul 27 2018, 18:36
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
vas1
Jul 28 2018, 19:52
  
Пост #358



Репутация:   8  
Дух


Группа: Пользователи
Сообщений: 47
С нами с: 9-February 14


Типа такого что-то

$ordersSum = [];
foreach ($all_orders as $orders) {
                $ordersSum = array_merge($ordersSum, $orders);
}
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
mzk
Nov 12 2018, 18:58
  
Пост #359



Репутация:   83  
Cтаршой
**

Группа: Пользователи
Сообщений: 673
С нами с: 27-February 08


Всем привет,
Ребята, возникла необходимость пулить инфу по SOAP веб-сервисам.
Есть вот такой xml, который отлично отрабатывает в SoapUI.
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «


Вопрос: каким образом мне сделать такой массив в php, чтобы он съел две "communications" вкладки ?

Само колл делаю вот так:

$soap = new SoapClient($wsdl, $options);

$data = $soap->creater($params);


где: $params - массив из xml выше


User is offlineProfile CardPM
Go to the top of the page
+Quote Post
phpkiev
Nov 12 2018, 19:20
  
Пост #360



Репутация:   308  
Ветеран
*****

Группа: Пользователи
Сообщений: 5 193
С нами с: 24-November 07


Это чей-то сторонний сервис или ваш? Вообще-то в структуре есть корневой элемент communications и внутри него расположены подэлементы. Хорошо видно, если красиво расставить теги smile.gif

<communications>
          <communications>
                    <communicationScopes>
                              <code>1</code>
                    </communicationScopes>
                    <value>0671234567</value>
                    <type>1</type>
                    <phoneType>2</phoneType>
                    <order>0</order>
                    <main>true</main>
          </communications>
          <communications>
                    <value>[email protected]</value>
                    <type>3</type>
                    <order>0</order>
                    <main>true</main>
          </communications>
</communications>


Обычная практика, хоть и странно, что подэлементы имеют такой-же тег, как и родительский. Я бы назвал родителя communications, а уже дочерние элементы иначе, ну например communication. Но в принципе, с известной долей желания, можно и такую структура разобрать, при этом загнать вложенные communications в массив.

типа


$communications[] = [
      'communicationScopes' => [
            'code' => 1
      ],
      'value' => 0671234567,
      'type' => 1,
      'phoneType' => 2,
      'order' => 0,
      'main' => true
];
$communications[] = [
      'value' => '[email protected]',
      'type' => 3,
      'order' => 0,
      'main' => true
];


ну и родитель

$params['communications'] = communications;


Сообщение отредактировал phpkiev - Nov 12 2018, 19:37
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

20 Страницы  « < 16 17 18 19 20 >
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 14th August 2024 - 16:49
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.