Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » MySql/PHP: общие вопросы

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Открыть новую тему     Написать ответ в эту тему

b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прошу прощения, разобрался. Код работает верно, не там выводил результат.

Всего записей: 673 | Зарегистр. 04-03-2010 | Отправлено: 17:53 20-10-2021
b7music



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте =) Подскажите, пожалуйста, как передать значение data из кнопки в поле?
Есть кнопка

Код:
<li class="btn btn-transparent" onclick="" name="<? echo $value ?>" value="<?=$value?>" data="<?=$value?>"><?=$value?> шт </br><?=CurrencyFormat($summa, 'RUB')?></a></li>

и имеет такой вид в итоге
 

Код:
<li class="btn btn-transparent" onclick="" value="9" data="9">9 шт <br>17 136 руб.</li>

в $value находится число.
Хочу при нажатии передать его в форму количество товара и не пойму как(
 
https://prnt.sc/229q92c
Подскажите, пожалуйста, как передать значение?
http://185.46.11.25/catalog/product/buket-kholodnoe-serdtse-2-shary-folga-lateks-dekor-napolnenie-13sht-geliy-obrabotka-gruzik/
 

Всего записей: 673 | Зарегистр. 04-03-2010 | Отправлено: 10:13 08-12-2021 | Исправлено: b7music, 10:15 08-12-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
b7music
при чем тут php/mysql? эти операции, пока не отправляются на сервер, осуществляются с помощью javascript. отслеживаете клик, и далее уже делаете что хотите с данными - либо отправляете на сервер, либо как то еще используете на странице.
по onclick и делаете что хотите.
 
все зависит от того, как у вас реализована корзина и все остальное

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 10:46 08-12-2021
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как получить подсчет Без дубликатов?  
 
Это должно быть 1  
 
   
 
 

Код:
 
<?php
 
$risultato = explode(" , ", $row->distributor);
foreach ($risultato as $res) {
array_push($arr, $res);
}
 
$risultato = explode(" , ", $row->studio);
foreach ($risultato as $res) {
array_push($arr, $res);
}
 
 
 
?>
<? endwhile; ?>
<?php  
natcasesort($arr);  
 
$ok2 = array_count_values($arr);  
 
foreach (array_unique($arr) as $ok){
 
    
 
?>
 
    <div class="pretty p-default p-round">
    <input type="checkbox" name="distr" value="<?php echo $ok;?>">
    <div class="state p-success-o">
    <label>
    <?php echo '&nbsp;' . '<a style="color:blue">' . $ok . '</a>' . " (" . $ok2[$ok] . ")" . '&nbsp;';?>
    </label>
        </div>
    </div>
    
      
<?php
    }
 
?>  
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:32 19-01-2022 | Исправлено: zagorisback, 21:33 19-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Как получить подсчет Без дубликатов?  

делать trim для строки, там явно где то лишние пробелы, а array_unique тогда не будет считать их одинаковыми.
 

Цитата:
$risultato = explode(" , ", $row->distributor);
foreach ($risultato as $res) {
array_push($arr, trim($res));
}
 
$risultato = explode(" , ", $row->studio);
foreach ($risultato as $res) {
array_push($arr, trim($res));
}

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 21:37 19-01-2022 | Исправлено: Mavrikii, 21:41 19-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уникальный счет должен быть для студии / дистрибьютора в массиве
 
Здесь должно быть 2
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 21:54 19-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Уникальный счет должен быть для студии / дистрибьютора в массиве
 
Здесь должно быть 2

я написал что нужно сделать.. и перед счетом нужно  
$arr = array_unique($arr);
а не после него.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 22:22 19-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
«Count» отображается в переменной $ok2
Это для каждой записи, в этом случае результат должен быть 2, а не 4 или 1

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 22:59 19-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
«Count» отображается в переменной $ok2
Это для каждой записи, в этом случае результат должен быть 2, а не 4 или 1

я разве неясно написал в чем дело??
сначала trim для строк, затем array_unique для $arr ДО подсчета array_count_values
потому что считает все записи в массиве, а в нем явно нужно уменьшить количество дублей.
 
и, что важно, обнулять массив после использования. иначе он будет только увеличиваться.
$arr = [];
первым шагом в цикле обработки данных, не до него.
 
foreach(... ) {
 $arr = [];
 // далее работаем с массивом.
}
 
в случае
$arr = [];
foreach(... ) {
 // далее работаем с массивом.
}
 
содержимое $arr будет увеличиваться после каждого цикла.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:01 19-01-2022 | Исправлено: Mavrikii, 23:11 19-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я разве неясно написал в чем дело??

 
Каждая запись должна быть подсчитана отдельно  
 
 
   
 
 
<?php echo '&nbsp;' . '<a style="color:blue">' . $ok . '</a>' . " (" . $ok2[$ok] . ")" . '&nbsp;';?>  
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:18 19-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Уникальный счет должен быть для студии / дистрибьютора в массиве


Код:
$risultato = explode(" , ", $row->distributor);
$tmp = [];
foreach ($risultato as $res)
$tmp[] = trim($res);
 
$arr = array_merge($arr, array_unique($tmp));
 
$risultato = explode(" , ", $row->studio);
$tmp = [];
foreach ($risultato as $res)
$tmp[] = trim($res);
 
$arr = array_merge($arr, array_unique($tmp));
 

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 23:38 19-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Почему «подсчет» всегда 4?
Это должно быть 2
 
   
 
 

Код:
 
<?php
 
$risultato = explode(" , ", $row->distributor);
$tmp = [];
foreach ($risultato as $res)
$tmp[] = trim($res);
 
$arr = array_merge($arr, array_unique($tmp));
 
$risultato = explode(" , ", $row->studio);
$tmp = [];
foreach ($risultato as $res)
$tmp[] = trim($res);
 
$arr = array_merge($arr, array_unique($tmp));
 
 
 
 
?>
<? endwhile; ?>
<?php  
natcasesort($arr);  
 
$ok2 = array_count_values($arr);
 
foreach (array_unique($arr) as $ok){
 
 
 
?>
 
    <div class="pretty p-default p-round">
    <input type="checkbox" name="distr" value="<?php echo $ok;?>">
    <div class="state p-success-o">
    <label>
    <?php echo '&nbsp;' . '<a style="color:blue">' . $ok . '</a>' . " (" . $ok2[$ok] . ")" . '&nbsp;';?>
    </label>
        </div>
    </div>
    
      
<?php
    }
 
?>  
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 23:54 19-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
результат var_dump($arr); сюда

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 02:34 20-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
zagorisback
результат var_dump($arr); сюда
 

 
 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 07:43 20-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
результат var_dump($arr);

не срабатывает array_unique. не могу сказать почему.
нужно на месте пробовать код и смотреть. может фразы написаны разными кодами символов в уникоде.
каждый должен оставлять только одну запись на строку. как вариант, пробел между Universal и Studios идет разными символами.
более того, после _unique там не должно быть столько пустых мест.. значит код не этот исполняется, я не знаю, что вы там и делаете и как. но явно не этот кусок.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 07:52 20-01-2022 | Исправлено: Mavrikii, 07:59 20-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может быть, это проблема?  
 

Код:
<td>
<?php echo $row->studio; ?>
<br>
<?php echo $row->distributor; ?>
</td>

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:14 20-01-2022 | Исправлено: zagorisback, 08:15 20-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback

Цитата:
Может быть, это проблема?

нет, это всего лишь выводит где то и все.
но теперь понятно, что код считает правильно.
потому что добавляется сразу два, вот так нужно

Цитата:
 
$risultato = explode(" , ", $row->distributor);
$arr = array_merge($arr, array_map('trim', $risultato));
 
$risultato = explode(" , ", $row->studio);
$arr = array_merge($arr, array_map('trim', $risultato));
 
$arr = array_unique($arr);
var_dump($arr);

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 08:38 20-01-2022 | Исправлено: Mavrikii, 08:38 20-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
$risultato = explode(" , ", $row->distributor);
$arr = array_merge($arr, array_map('trim', $risultato));
 
$risultato = explode(" , ", $row->studio);
$arr = array_merge($arr, array_map('trim', $risultato));
 
$arr = array_unique($arr);
var_dump($arr);  

 
Возвращает меня 1, он должен быть 2 (один для каждой записи)  
 
   

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 08:52 20-01-2022
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
короче, весь код нужен (весь цикл выводящий данные), надоело в догадалки играть.

Всего записей: 15100 | Зарегистр. 20-09-2014 | Отправлено: 08:58 20-01-2022 | Исправлено: Mavrikii, 08:58 20-01-2022
zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Оригинальный код без изменений
 
 
code 1
 

Код:
 
 
<p class="bioheading">Tags: Studio/Distributor</p><p class="biodata">
 
<!-- TESTO DEL COMMENTO<div style="float:left;">  -->                  
     <div id="iddistr">
 
<?php
            require_once("connetti.php");
 
$actor_id = $_GET['id'];
 
$query = "SELECT
studio, distributor
FROM film_actor
INNER JOIN film ON film_actor.film_id = film.film_id
INNER JOIN actor ON film_actor.actor_id = actor.actor_id
WHERE film_actor.actor_id = $actor_id
";
$arr = array();
$result = mysql_query( $query );
if (!$result)
die("mySQL error: ". mysql_error());
while( $row = mysql_fetch_object( $result ) ) : ?>
 
 
<?php
 
$risultato = explode(" , ", $row->distributor);
foreach ($risultato as $res) {
array_push($arr, $res);
}
 
$risultato = explode(" , ", $row->studio);
foreach ($risultato as $res) {
array_push($arr, $res);
}  
 
 
 
 
?>
<? endwhile; ?>
<?php  
natcasesort($arr);  
$ok2 = array_count_values($arr);  
 
foreach (array_unique($arr) as $ok){
 
 
    
 
?>
 
    <div class="pretty p-default p-round">
    <input type="checkbox" name="distr" value="<?php echo $ok;?>">
    <div class="state p-success-o">
    <label>
    <?php echo '&nbsp;' . '<a style="color:blue">' . $ok . '</a>' . " (" . $ok2[$ok] . ")" . '&nbsp;';?>
    </label>
        </div>
    </div>
    
      
<?php
    }
 
?>  
 
 

 
code 2
 

Код:
<td><?php echo $row->film_year; ?><br><?php echo $row->release_data; ?></td>
        <td>
        <?php echo $row->studio; ?>
        <br>
        <?php echo $row->distributor; ?>
        </td>

 
code 3 (datatables)
 

Код:
<script>
$(document).ready( function () {
.....
 
// start filter checkbox     2 di 2
 
$('input:checkbox').on('change', function () {
   //build a regex filter string with an or(|) condition
   //build a filter string with an or(|) condition
   var distributor = $('input:checkbox[name="distr"]:checked').map(function() {
     return this.value;
   }).get().join('|');
   
   //now filter in column 2, with no regex, no smart filtering, not case sensitive
   table.column(2).search(distributor, true, false, false).draw(false);

 
 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 09:30 20-01-2022 | Исправлено: zagorisback, 09:32 20-01-2022
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

Компьютерный форум Ru.Board » Интернет » Web-программирование » Активные темы » MySql/PHP: общие вопросы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru