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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

zagorisback



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Учитывая размер фотографий
запрос:
Можно ли создать «страницу», чтобы просмотреть фотографии?
Пример: 20 за страницу
адаптируя этот код
 

Код:
 
<div class="main">
<p class="bioheading">Gallery from director -  
<?php  
if (empty($row->imdbid)) {
echo 'NO Photo';
}else{
    
    $dirname = 'images_actors/*' . $row->imdbid . '/';
        $count = count(glob($dirname."*"));
echo " ( $count ) images";
 
}
 
 
?>
 

 
 

Код:
<a href="<?php echo $image; ?>" class="highslide" onclick="return hs.expand(this)" title="<?php echo $description; ?>" style="margin: 10px 15px 10px 15px">
<img src="<?php echo $image; ?>"  width="120px" height="170px" style="border:4px solid #333333">
</a>

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 13:10 10-12-2022
Mavrikii

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

Цитата:
адаптируя этот код

вырезаете из массива кусок и только его отображаете.
используя два параметра - номер страницы и количество элементов на страницу.
 
принцип - https://stackoverflow.com/questions/26451362/how-to-add-php-pagination-in-arrays

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 19:57 10-12-2022
zagorisback



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

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 10:55 11-12-2022 | Исправлено: zagorisback, 14:56 24-01-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zagorisback
дв что же на таких элементарных вещах то.. сколько можно - давно уже понимать должны как и что работает.
 
ошибка с PostgreSQL - сто раз говорил, не использовать данные напрямую, нужно экранировать их.
 

Цитата:
?page=

зачем тут знак вопроса?  
file.php?arg1=value1&arg2=value2 и так далее.. неужели сложно посмотреть адресную строку хотя бы на нашем форуме?
 
в вашем случае
file.php?arg1=value1?arg2=value2  
значением arg1 будет value1?arg2=value2, а не value1. и оно напрямую идет в базу, что вызывает ошибку синтаксиса, по понятным причинам.
 
https://www.php.net/manual/en/function.pg-escape-string.php

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вау, уже нервничал с утра
Меньше кофе
 
Я решил это так,
Но перезарядите страницу за пределами вкладки #Gallery
Как перезарядить внутри вкладки #Gallery?
 
 

Код:
<li role="presentation"><a href="#gallery" aria-controls="gallery" role="tab" data-toggle="tab">Gallery
 
<!-- Gallery Start -->
<div role="tabpanel" class="tab-pane" id="gallery"><p class="bioheading"></p>
 
Code php
 
................
 
 <a <?php echo $style_active . "href=\"/actors.php?id=" . $row->actorid . "&page=";?><?php echo $p; ?>"><?php echo $p; ?></a>
 
....
 

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

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

Цитата:
вау, уже нервничал с утра
Меньше кофе

мне просто надоело повторять одно и то же.. не хотите прислушаться к тому, о чем вам говорят те, кто давно уже подобным занимается - значит не обижайтесь на реакцию.
и у меня 3 часа ночи.
 

Цитата:
Но перезарядите страницу за пределами вкладки #Gallery
Как перезарядить внутри вкладки #Gallery?

без понятия о чем речь, очевидно же.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:27 11-12-2022 | Исправлено: Mavrikii, 11:28 11-12-2022
zagorisback



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

 
 
 
 

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 12:14 11-12-2022 | Исправлено: zagorisback, 14:54 24-01-2023
zagorisback



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

Всего записей: 623 | Зарегистр. 05-05-2014 | Отправлено: 18:56 21-12-2022 | Исправлено: zagorisback, 14:55 24-01-2023
Alinalessio

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1. Натягиваю хтмл шаблон на вордпресс.
2. В плагине ACF успешно создал поля, для вывода их на страницу.
3. В админке заполнил эти поля.
4. В шаблоне вывожу поля по этому образцу https://acfwp.ru/povtoritel/
 

 
Прямоугольниками определённых цветов пытался изобразить группы полей и сами поля.
1. Красный прямоугольник, это самая верхняя родительская группа, в которой находятся все остальные. Показал красной стрелочкой как она открывается и закрывается.
2. Синие поля, это те поля, которые успешно выводятся. С ними всё в порядке.
3. Зелёные поля выводятся циклом. Вроде цикл на месте. while перебирает содержимое полей и последовательно выводит отдельно каждое поле. Закрывашки вроде на месте.
 
Суть в том, что именно в цикле эти поля и не выводятся. Что им не хватает?
Вот этот кусок кода.

Код:
<?php        
                    // переменные
                    $blok_4_1 = get_field('blok_4_1');    
                    if( $blok_4_1 ): ?>
 
                        <article>
                            <h2>
                                <?php echo $blok_4_1['zagolovok']; ?>
                            </h2>
                            <span class="devider-cont"></span>
                            <p><br></p>
 
                            <h5><?php echo $blok_4_1['podzagolovok']; ?></h5><br>
 
                            <ul>
                                
                            <?php
 
                                // проверяем есть ли в повторителе данные
 
                                if( have_rows('blok_4_1_li') ):
 
                                    // перебираем данные
                                    while ( have_rows('blok_4_1_li') ) : the_row(); ?>
 
                                        // отображаем вложенные поля
                                        <li><?php echo the_sub_field('stroka_spiska'); ?></li>
 
                                    <?php endwhile;
 
                                else :
 
                                    // вложенных полей не найдено
 
                                endif; ?>
 
                            </ul>
                        </article>
                <?php
                    endif;
                ?>

Всего записей: 223 | Зарегистр. 21-06-2010 | Отправлено: 12:21 22-12-2022 | Исправлено: Alinalessio, 12:22 22-12-2022
Mavrikii

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

Цитата:
Что им не хватает?

echo уберите.

Цитата:
<li><?php echo the_sub_field('stroka_spiska'); ?></li>


Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 23:10 22-12-2022 | Исправлено: Mavrikii, 23:10 22-12-2022
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Только сейчас заметил, что, оказывается, на всех таблицах в PHPMyAdmin стоит значок "Разбиение отсутствует (скриншот https://ibb.co/ysxYZTj ).
 
Непонятно, что с этом делать?

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 15:42 19-01-2023
Mavrikii

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

Цитата:
что с этом делать

Ничего - зачем?
https://habr.com/ru/post/66151/

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 15:56 19-01-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
 
Не могу придумать, как сделать сортировку.
 
        $query = mysqli_query($db, "SELECT * FROM `notice` WHERE `komu` = '$user_id'");
        while($row = mysqli_fetch_assoc($query))
        {
            $new             = $row['new'];
            $theme_id         = $row['theme_id'];
            $like_text         = $row['like_text'];
            $number_comment    = $row['new_comment'];
            $like_comment     = $row['like_comment'];
            $time             = $row['time'];
        }
 
Нужно отсортировать выборку по времени time в порядке убывания (самые свежие первыми), но прежде должны идти новые (new содержит 1), а потом все остальные.
 
Нюанс в том, что некоторые записи, которые по времени time пришли позже, по признаку (new содержит 1) к новым не относятся, так как посетитель их уже видел.
 
Как сделать такой запрос?    

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 11:15 13-03-2023
Mavrikii

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

Цитата:
но прежде должны идти новые (new содержит 1), а потом все остальные.

ORDER BY `new` DESC, `time` DESC
 

Цитата:
Нюанс в том, что некоторые записи, которые по времени time пришли позже, по признаку (new содержит 1) к новым не относятся, так как посетитель их уже видел

чего? с примером..

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:33 13-03-2023
Vladsvn

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

Цитата:
чего? с примером..

 
Я заношу в базу все события в хронологическом порядке по мере их наступления:
- написали отзыв на страницу «Весна-красна» 11:39:44
- поставили лайк странице «Планета Земля» 11:50:55
- написали отзыв на страницу «Природа» 11:55:24
 
А в сообщении о событиях вывожу их в обратном порядке – сначала более поздние.
- написали отзыв на страницу «Природа» 11:55:24
- поставили лайк странице «Планета Земля» 11:50:55
- написали отзыв на страницу «Весна-красна» 11:39:44
 
Посетитель увидит эти сообщения, если кликнет по ссылке «Уведомления».
 
Все это новые события, и для каждого из них new содержит 1.  
 
Но если посетитель по своей инициативе, не открывая Уведомления, еще раз посмотрел страницу «Планета Земля», то при его просмотре этой страницы в записи к этой странице делается (new = 0). Ибо это уже не новость. И в списке ей положено быть ниже «написали отзыв на страницу «Весна-красна» 11:39:44», когда он откроет этот список.  
 
 
 

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 11:58 13-03-2023
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vladsvn
сначала сортируете по new, потом по time
 

Цитата:
ORDER BY `new` DESC, `time` DESC


Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 12:04 13-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, это получилось! Но возник другой вопрос.
 
Количество записей в базе, относящихся к одному зарегистрированному пользователю, подсчитывается  так:
        $query = mysqli_query($db, "SELECT COUNT(`id`) AS `cnt` FROM `notice` WHERE `user_id` = '$user_id' ORDER BY `new` DESC, `time` DESC");
        $row = mysqli_fetch_assoc($query);
        $n_notice_new = $row['cnt'];
 
Хочется ограничить их количество для одного пользователя числом 30. Для этого планируется по хрону в полночь запускать скрипт, который будет удалять более ранние записи, находящиеся за пределами этой тридцатки.
 
Не могу придумать, как вообще это сделать...
 

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 11:29 14-03-2023
Mavrikii

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

Цитата:
Не могу придумать, как вообще это сделать...

DELETE FROM tablename WHERE id_записи NOT IN (SELECT id_записи FROM tablename WHERE ... LIMIT 30)
удалять все ID записей, что не будут выбраны в подзапросе.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:49 14-03-2023
Vladsvn

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, очень круто!
 
Я исходил из того, что буду перебирать поочередно все `user_id` пользователей и для каждого выполнять созданный Вами запрос.
 
А можно ли этот запрос ещё усовершенствовать так, что бы он сам исполнялся сразу для каждого из пользователей?

Всего записей: 342 | Зарегистр. 07-09-2016 | Отправлено: 11:32 15-03-2023
Mavrikii

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

Цитата:
А можно ли этот запрос ещё усовершенствовать так, что бы он сам исполнялся сразу для каждого из пользователей?

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

Цитата:
SELECT id_записи
   FROM
   (  SELECT id_записи,  
                  @user_count := IF(@current_user = user_id, @user_count + 1, 1) AS user_count,
                  @current_user := user_id
       FROM tablename
       ORDER BY user_id, `new` DESC, `time` DESC
   ) users_records
   WHERE user_count <= 10;

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

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 11:53 15-03-2023
Открыть новую тему     Написать ответ в эту тему

Страницы: 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