M

makson

0
Репутация
0
Рейтинг
#1 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 16 августа 2022 в 04:25

Ребят подскажите как прописать поля мультивыбор и список.

makson

Как-то так

  1. $fields['название_поля']['handler']->parse($res['название_поля']);
Loadырь

Огромное спасибо. Работает

echo "<td>{$fields['content']['handler']->parse($res['content'])}</td>";

#2 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 15 августа 2022 в 12:40

Ой что то не чего не получается.

<?php

$model = cmsCore::getModel('content');

$sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, COUNT(*) count FROM cms_con_kipa GROUP BY title HAVING(title) >1 ORDER BY `cms_con_kipa`.`title` »;

$result = $model->db->query($sql);

foreach ($result as $res){

}

?>

<table style=«border-collapse:collapse;width:100%;»>

                <tbody>

                               <tr>

                                               <td>ДАТА</td>

                                               <td>Серийный номер</td>

                                               <td>ДУБЛЬ</td>

                               </tr>

                <tr>

                                               <td><?php echo $res['data2'];?></td>

                                               <td><?php echo $res['title'];?></td>

                                               <td><?php echo $res['count'];?></td>

                               </tr>

                </tbody>

</table>

Нашел решения. Просто надо подумать  было

<?php

echo '<table>';

foreach ($result as $res){

                echo '<tr>';

                echo "<td>{$res['data2']}</td>";

                echo "<td>{$res['title']}</td>";

                echo "<td>{$res['count']}</td>";

                echo '</tr>';

                } echo '</table>';

                 ?>

Ну теперь буду думать как сохранять в XSL

Вот что у меня получилось


<?php
$model = cmsCore::getModel('content');
$sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, COUNT(*) count FROM cms_con_kipa GROUP BY title HAVING(title) >1 ORDER BY `cms_con_kipa`.`title` »;
$result = $model->db->query($sql);
    ///echo $res['data2']; echo $res['title']; echo $res['count']."<br>";

?>


<?php if ($items){ ?>
    <div class=«content_list table <?php echo $ctype['name']; ?>_list»>

        <table>
            <thead>
                <tr><table id=«toExcel» class=«uitable»>


<button onclick=«exceller()»>Сохранить файл EXCEL</button>

<script>
  function exceller() {
    var uri = 'data:application/vnd.ms-excel;base64,',
      template = '<html xmlns:o=«urn:schemas-microsoft-com:office:office» xmlns:x=«urn:schemas-microsoft-com:office:excel» xmlns=«www.w3.org/TR/TR/html40»><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines/></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></xml><![endif]--></head><body><table>{table}</table></body></html>',
      base64 = function(str) {
        return window.btoa(unescape(encodeURIComponent(str)))
      },
      format = function(s, c) {
        return s.replace(/{(\w+)}/g, function(m, p) {
          return c[p];
        })
      }
    var toExcel = document.getElementById(«toExcel»).innerHTML;
    var ctx = {
      worksheet: name || '',
      table: toExcel
    };
    var link = document.createElement(«a»);
    link.download = «export.xls»;
    link.href = uri + base64(format(template, ctx))
    link.click();
  }

</script>
<tr height=«20» style=«height:15.0pt»> 
            <td colspan=«1» style=«border-width: 1px; border-style: solid; border-color: rgb(143, 139, 139);»><span style=«font-size: 8pt;»><span style=«font-weight: bold; font-size: 8pt;»>Дата</td>
            <td colspan=«1» style=«border-width: 1px; border-style: solid; border-color: rgb(143, 139, 139);»<span style=«font-size: 8pt;»><span style=«font-weight: bold; font-size: 8pt;»><center>Серийный номер</center></td>
            <td colspan=«1» style=«border-width: 1px; border-style: solid; border-color: rgb(143, 139, 139);»<span style=«font-size: 8pt;»><span style=«font-weight: bold; font-size: 8pt;»><center>ДУБЛЬ</center></td>
</tr>
 <?php 

foreach ($result as $res){
                echo '<tr>';
                echo "<td>{$res['data2']}</td>";
                echo "<td>{$res['title']}</td>";
                echo "<td>{$res['count']}</td>";
                echo '</tr>';
                } echo '<tr>'; 
                 ?>

                    <?php if (isset($fields['photo']) && $fields['photo']['is_in_list']){ ?>
                        <th> </th>
                    <?php } ?>
                    <?php if ($ctype['is_rating']){ ?>
                        <th><?php echo LANG_RATING; ?></th>
                    <?php } ?>

                    <?php foreach($fields as $name => $field){ ?>
                        <?php if ($field['is_system'] || !$field['is_in_list']) { unset($fields[$name]); continue; } ?>
                        <?php if ($field['groups_read'] && !$user->isInGroups($field['groups_read'])) { unset($fields[$name]); continue; } ?>
                        <?php
                            if (!isset($field['options']['label_in_list'])) {
                                $label_pos = 'none';
                            } else {
                                $label_pos = $field['options']['label_in_list'];
                            }
                        ?>

                    <?php } ?>
                </tr>
            </thead>
            <tbody>
                <?php foreach($items as $item){ ?>
                    <tr<?php if (!empty($item['is_vip'])){ ?> class=«is_vip»<?php } ?>>
                        <?php if (isset($fields['photo']) && $fields['photo']['is_in_list']){ ?>
                            

 <?php } ?>
                        <?php if (!empty($item['rating_widget'])){ ?>
                            <td class=«rating»>
                                <?php echo $item['rating_widget']; ?>
                            </td>
                        <?php } ?>

                </tr>
                <?php } ?>
            </tbody>
<br>

</table>

    </div>


<?php  } else {

    if(!empty($ctype['labels']['many'])){
        echo sprintf(LANG_TARGET_LIST_EMPTY, $ctype['labels']['many']);
    } else {
        echo LANG_LIST_EMPTY;
    }

}

Изображение

Остается сделать заголовок как ссылка. 

Ну вот казалась так все просто, но не тут было.

Как прописать что бы поле title  была ссылкой?

foreach ($result as $res){
                echo '<tr>';
                echo "<td>{$res['data2']}</td>";
                echo "<td>{$res['title']}</td>";
                echo "<td>{$res['count']}</td>";
                echo '</tr>';
                } echo '<tr>'; 
                 ?>

Добавлено спустя 3 часа

Поля ссылка вопрос решил: echo "<td><a href='kipa/". $res['slug']. ".html'>{$res['title']}</a></td>";

Ребят подскажите как прописать поля мультивыбор и список.

#3 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 12 августа 2022 в 10:47

Я так понимаю мне надо что бы не прописывать подключение к базе данных надо отредоктировать файл

makson

Нет, не надо редактировать файлы движка.

Ну все таки наверно как то не правильно делаю. Прописывать подключение к базе данных в каждом файле это так не должно быть.

makson

Размещать логику и обработку данных из базы в файлах шаблона тоже неправильно, ну да ладно.

Попробуйте так:

  1. <?php
  2.  
  3. $model = cmsCore::getModel('content');
  4.  
  5. $sql = "SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, COUNT(*) count FROM cms_con_kipa GROUP BY title HAVING(title) >1 ORDER BY `cms_con_kipa`.`title` ";
  6.  
  7. $result = $model->db->query($sql);
  8.  
  9. foreach ($result as $res){
  10.  
  11. echo $res['data2']; echo $res['title']; echo $res['count']."<br>";
  12.  
  13. }
  14.  
  15. ?>
Ris

Спасибо. Сделал как вы написали.  Работает))))

Добавлено спустя 15 минут

Дальше мне надо сделать табличный вариант.

<table style=«border-collapse:collapse;width:100%;»>

               <tbody>

                               <tr>

                                               <td>ДАТА</td>

                                               <td>Серийный номер</td>

                                               <td>ДУБЛЬ</td>

                               </tr>

                <tr>

                                               <td><?php echo $res['data2'];?></td>

                                               <td><?php echo $res['title'];?></td>

                                               <td><?php echo $res['count'];?></td>

                               </tr>

                </tbody>

</table>

Думал все легко, но не тут то было.

<?php
 
$model = cmsCore::getModel('content');
 
$sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, COUNT(*) count FROM cms_con_kipa GROUP BY title HAVING(title) >1 ORDER BY `cms_con_kipa`.`title` »;
 
$result = $model->db->query($sql);
 
foreach ($result as $res){
 

<table style=«border-collapse:collapse;width:100%;»>

               <tbody>

                               <tr>

                                               <td>ДАТА</td>

                                               <td>Серийный номер</td>

                                               <td>ДУБЛЬ</td>

                               </tr>

                <tr>

                                               <td><?php echo $res['data2'];?></td>

                                               <td><?php echo $res['title'];?></td>

                                               <td><?php echo $res['count'];?></td>

                               </tr>

                </tbody>

</table> 
}
 
?>

Подскажите как сделать табличный вариант. Куда бы я не поставил это(<) знак ошибка.

Если таблицу прописываю после закрытие } ?> То таблица отображается но данные появляются только в первой строке.

#4 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 11 августа 2022 в 11:13

А можно по точней.?

makson

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

Loadырь

Наверное я не правильно довожу что мне нужно сделать.

Попробую объяснить.

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

Итог должен быть такой.

Изображение

Что я для для этого делаю.

Первое захожу в базу

Запрос SQL

Прописываю

select title, count(*) as dubl from cms_con_kipa group by title having title > 1

Итог: все отлично.

Изображение

Дальше 

Создаю файл: default_list_table_dybl.tpl.php


<?php

$servername = «localhost»;

$username = «makson0x_jjjjjk»;

$password = «347582»;

$dbname = «makson0x_jjjjjk»;

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, COUNT(*) FROM cms_con_kipa GROUP BY title HAVING(title) >1 ORDER BY `cms_con_kipa`.`title` ASC»;

$result = $conn->query($sql);

if ($result->num_rows > 10) {

    while ($row = $result->fetch_assoc()) {

    echo  $row[«data2»];  echo $row[«title»]; echo $row[«COUNT(*)»]."<br>";

    }

}

$conn->close();

?>

Закидываю его в папку content

И вот итог:Изображение

Ну все таки наверно как то не правильно делаю. Прописывать подключение к базе данных в каждом файле это так не должно быть.

Добавлено спустя 29 минут

Я так понимаю мне надо что бы не прописывать подключение к базе данных надо отредоктировать файл /system/controllers/content/model.php

#5 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 11 августа 2022 в 09:07

Где прописать instantcms

makson

Да, хоть где. Можно между тегами <?php и ?> с двумя косыми и пробелом, так например // instantcms или рядом с монитором на листочке бумаги.

А вообще, вопрос звучит интересно. Вариантов ответов можно напридумать массу.

Loadырь

А можно по точней.?

Вот берем Тип контента localhost/kihf

Поля стандартные.

<?php $sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, count(*) as dubl from cms_con_kipa group by title having title > 1»;?> и где прописать в стиле?

Надо прописать так что вид страницы моего сайта не изменился а просто добавился запрос к базе. Я понимаю что мне только останется прописать поле $row[«COUNT(*)»]

#1 Запрос mysql вывод дублей на странице. Сохранения страницы html как таблицу XSL 11 августа 2022 в 07:41

Добрый день.

Нужно сделать вывод количество дублирующихся заголовков.

В базе без проблем прописал проверил все работает. Результат устроил!!!!

Таблица: cms_con_kipa

Поле сравнения: title

Вывод: DUBL

select title, count(*) as dubl from cms_con_kipa group by title having title > 1

Как в обычный  создать index.php знаю, все работает.

<?php
$servername = «localhost»;
$username = "*********";
$password = "**********";
$dbname = "**************";
 
$conn = new mysqli($servername, $username, $password, $dbname);

$sql = «SELECT data2, title, gran, mine, content, part2, executor, tdby, kol, count(*) as dubl from cms_con_kipa group by title having title > 1»;

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
      echo $row[«data2»]. $row[«title»]. $row[«gran»]. $row[«mine»]. $row[«content»]. $row[«part2»]. $row[«executor»]. $row[«COUNT(*)»]."<br>"; 
               }

$conn->close(); 
?>

А вот теперь вопрос.  Где прописать instantcms голову сломал не получается. За ранние спасибо.

#7 [ЕСТЬ РЕШЕНИЕ] Как изменить размер изображения при загрузке 21 апреля 2021 в 12:23
Компоненты -> Загрузка изображений -> Пресеты
Добавить.
Создай свой размер. Но если изменишь на новый размер все старые изображения отображаться не будут. Пока не загрузишь новые изображения
#8 instantcms 2 виджет php 21 апреля 2021 в 11:18


Zau4man

Установил виджет.
Вставляю на страницу виджет "php код". В него вставляю из буфера код sape.
Добавляю для вывода ссылок:. Но на сайте тогда выдается "return_links($2); ?>".
На странице добавления сайта в sape выдается, что на сайте кода sape нет.
Писал им в поддержку, ответили что нужно им отослать пароли что бы они сами подправили. Но это мне кажется очень странным.

max_nordvegan

Про техподдержку ты зря. Они мне много раз помогали. Качай устанавливай PHP и в него вписывай ссылки от sape.

Да ты им предоставляешь пароль и они сами делают. Ну если не хочешь пароли предоставить ищи сам.
Прикрепленный файл
php_4cpd8.zip 3 Кб
#9 Добавления два поля в комментарий. 21 апреля 2021 в 10:35


Тут все несколько сложнее. Добавленные данные же еще надо хранить. И потом вывести в списке комментариев.
Т.е. только одной правкой шаблона тут не обойтись.

Zau4man
Да это я понимаю. Вот и создал тему что один не справлюся.
#1 Добавления два поля в комментарий. 21 апреля 2021 в 06:59
Доброго дня. Помогите добавить два поля в стандартный компонент в комментарий на сайте.
Первое поле выпадающий список.
Второе поле ссылка на сайт.

Много инфы перекопал но что то похожего не нашел.

Файле пытался поправить но не чего конкретного не получилось list.tpl.php
Прикрепленный файл
_bitnf.jpg 55 Кб
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.