За последние 24 часа нас посетили 22203 программиста и 1056 роботов. Сейчас ищет 651 программист ...

вывод столько ckEditor-ов, сколько строк в mysql

Тема в разделе "PHP для новичков", создана пользователем МихаилГалузо, 22 янв 2017.

  1. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    Подскажите вариант решения трудности. При работе с ckEditor-ом, для его вывода и сохранения использую переменную $i; $t=$i-1;
    <!--=========================== Визуальный редактор ====================-->
    <form method="post">
    <?php echo ' <textarea id="'.$i.'" name="txt" cols="100" rows="20">'; ?><?php echo $txt[$t]['text'] ?></textarea>
    <script type="text/javascript">
    <?php echo ' var ckeditor1 = CKEDITOR.replace( '.$i.' );' ?>
    AjexFileManager.init({ // Визов номого метода
    returnTo: 'ckeditor', // Передача параметров
    editor: ckeditor1 // Передача параметров
    });
    </script> <br/>
    <input type="hidden" name="id" value="<?php echo $txt[$t]['id'] ?>" />
    <input type="submit" name="sub" value="Обновить" />
    </form>
    <!-- ============================ -->
    Переменная $i= ($_GET["id"]);
    <!-- ============================ -->
    Массив $txt[ ]
    function selectTxt(){
    $txt = array(); // Инициализируем масив $txt
    $query = "SELECT categ_id, text FROM category";
    $res = mysql_query($query);
    while($row = mysql_fetch_assoc($res)){
    $txt[] = $row;
    } return $txt;

    <!-- ============================ -->
    Значение id формируется в jQuery

    $(document).ready(function()
    {
    $("#country").change(function(){ //Обращаемся к элементу с индификатором #country, отслеживаем событие change для списка #country
    var countryval = $("#country").val(); // Получаем выбранное значение списка родителя в переменную var countryval
    location.href = "http://work/admin/view_home_cat.php?id=" + countryval;
    });
    <!-- ============================ -->
    Значение списка родителя с индификатором #country

    <form action="" method="post">
    <select name="country" id="country" size="1">
    <?php foreach ($cauntries as $key ):?>
    <option value="<?=$key['categ_id']?>"><?=$key['categ_tovara']?></option>
    <?php endforeach; ?>
    </select>
    </form>
    <!-- ============================ -->
    Массив $cauntries[ ] формируется:
    function selectCountries(){
    $result = mysql_query("SELECT * FROM category");
    $cauntries = array();
    while ($row = mysql_fetch_assoc($result)) {

    $cauntries[ ] = $row;
    }
    return $cauntries;
    }

    <!-- ============================ -->
    База данных сategory

    categ_id categ_tovara text
    1 Гипсокартон <p> Гипс</p>
    [​IMG] 7 Блоки <p> Блоки</p>
    8 Шифер <p> Шифер</p>

    <!-- ============================ -->
    Трудность: При выборе в селекторе с id="country" к примеру "Гипсокартон" переменной $i присваивается значение 1 супер, и ckEditor работает корректно он выдает текст <p> Гипс</p>.
    Но как только производиться выборка "Блоки" переменной $i присваивается значение 7 не супер и ckEditor работает не корректно он, то есть он выдает пустоту, ckEditor выдал бы, что нибудь
    если бы в Базе Данных было по факту не три а семь строк.
    Мои думания: 1. Что то нужно менять в ckEditor, а именно в массиве $txt[ ]
    2. В базе данных, чтоб id данных записывался не 1,7,8, а 1,2,3 - в правильной последовательности натуральных чисел.
    3. Или в чем то другом.
     

    Вложения:

  2. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    База данных а что верхнию плохо читать
    categ_id . | . categ_tovara . |. text

    1 . | . Гипсокартон .|. <p> Гипс</p>

    [​IMG] 7 . |. Блоки . | . <p> Блоки</p>

    8 . |. Шифер . | . <p> Шифер</p>

    И print_r($cauntries);
    Array ( [0] => Array ( [categ_id] => 1 [categ_tovara] => Гипсокартон [text] =>

    Гипс
    ) [1] => Array ( [categ_id] => 7 [categ_tovara] => Блоки [text] =>
    Блоки

    ) [2] => Array ( [categ_id] => 8 [categ_tovara] => Шифер [text] =>
    Шифер
    print_r($txt);
    Array ( [0] => Array ( [categ_id] => 1 [text] =>

    Гипс

    ) [1] => Array ( [categ_id] => 7 [text] =>
    Блоки

    ) [2] => Array ( [categ_id] => 8 [text] =>
    Шифер
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Я ничего не понял
     
  4. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    Естьмассив:

    f
    PHP:
    1. unction selectTxt(){  
    2.  
    3.     $txt = array();        
    4.  
    5.   $res = mysql_query("SELECT categ_id, text FROM category");
    6.  
    7.     while($row = mysql_fetch_assoc($res))
    8.  
    9.         {    $txt[] = $row;    }
    10.  
    11. return $txt;  }
    Егозначения:

    PHP:
    1. Array ( [0] => Array ( [categ_id] => 1 [text] => Гипс
    2.  
    3.             [1] => Array ( [categ_id] => 3 [text] => Блоки
    4.  
    5.             [2] => Array ( [categ_id] => 7 [text] => Шифер)
    Есть: значения categ_id которое равно 1, 3, 7
    Переменная $id=($_GET["categ_id"]); может принимать значения на вариант пользователя $id=>(или 1 или 3 или 7)
    При запросе: echo $txt[$id]['text']; при $id=0, результат Гипс, а нужно при $id=1, чтобы выводило Гипс.
    А при $id=3 или 7 вообще ни чего не выводит, а нужно Блоки и Шифер.
    Посоветуйте решение, за ранее благодарствую.
     
    #4 МихаилГалузо, 22 янв 2017
    Последнее редактирование модератором: 22 янв 2017
  5. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    И тут ничего не понятно, и в той теме, которую ты только что создал с точно таким же текстом тоже ничего не понятно...
    --- Добавлено ---
    Стоп так всё правильно выводится: $txt[0]["text"] - У тебя гипс под id = 0, вот и выводится текст элемента, у которого id = 0. Если надо обращаться именно по categ_id, то так их из базы и доставай.
    Код (Text):
    1. SELECT `text` FROM `название таблицы` WHERE `categ_id` = '1'
    - Шифер
    --- Добавлено ---
    Или можно как-то по извращаться твоим вариантом:
    PHP:
    1. while ($row = mysql_fetch_assoc($res)) {
    2. $arr[$row["cat_id"]] = $row["text"];
    3. }
    4. echo $arr[1]."<br>";
    5. echo $arr[3]."<br>";
    6. echo $arr[7]."<br>";
    Не уверен что это рабочий код, но идею, я надеюсь, ты понял.
    --- Добавлено ---
    А вообще, на сколько я знаю, есть в SQL такая функция, которая заменяет ключ на нужное поле прямо при выборке. Только не помню чо за функция. Вроде, "AS" Что-то типа "SELECT `id` AS `categ_id` FROM ..." Поправьте меня. Уверен что это неправильно :)
     
    МихаилГалузо нравится это.
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    А второй вариант? Может его как-то переделаешь (А то я сомневаюсь о его работоспособности).
    --- Добавлено ---
    А чем тогда не устраивает вариант перебирать всё по id?
     
  7. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    Вот второй сейчас тестирую, к стати может и подойдет, чет то сразу не разобрал, новости смотрел одним глазом
     
  8. МихаилГалузо

    МихаилГалузо Новичок

    С нами с:
    11 янв 2017
    Сообщения:
    29
    Симпатии:
    0
    $arr[$row["cat_id"]] = $row["text"];
    }
    echo $arr[1]."<br>";
    echo $arr[3]."<br>";
    echo $arr[7]."<br>";[/PHP]

    Блин два дня сидел ломал голову, все работает спасибо.
     
  9. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    "Спасибо" здесь обычно заменяет кнопка "Лайк"