За последние 24 часа нас посетили 56615 программистов и 1772 робота. Сейчас ищут 1006 программистов ...

не выводим полность

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

  1. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    PHP:
    1. $rt15f=mysql_query("select * from `goroda`");
    2. $row=mysql_fetch_array($rt15f);
    3.  
    4.  $selectprojectid = mysql_query("SELECT * FROM list where `category`='1'");
    5.  
    6. while ($cl1 = mysql_fetch_array($selectprojectid))
    7. {
    8. ?>
    9. <td>
    10. <input type="checkbox" id="fd6" name="options[]" value="<?=$cl1['id']?>" <?if ($cl1['id'] == $row['goroda']){echo 'checked';}else{}?>><?=$cl1['tovar_v_stranah_ili_regionah']?>
    11. </td>
    12. <?}?>
    При редактировании товара, должны быть отмечены те чекбоксы которые имеются в таблице "goroda", но почему то $cl1['id'] == $row['goroda'] видит только первый, т.е. $row['goroda'] только выводит одно значение.... Может знает кто то как правильнее?
     
  2. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Ты один только ряд $row получаешь, а $cli ВСЕ! А значит город там всего один, по логике
     
  3. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    А как правильнее сделать? Уже вторые сутки мучаюсь... :/
     
  4. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Я не знаю, я не понимаю логику твоего кода.
    даже на уровне такого $cl1['id'] == $row['goroda'] у меня уже жуткий диссонанс, как может быть id == goroda :)

    Наверное, тебе помогут, если ты покажешь свои таблицы и объяснишь что хочешь вывести.
     
  5. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Есть таблица где есть города с характеристиками $cl1['id']
    Есть таблица goroda и в нем столбик тоже называется goroda, в столбике записываются ID, которые берутся из $cl1..

    Хочу чтобы сверял ид, т.е. если id есть в goroda то выводит checked...
     
  6. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Я честно говоря не особо хорошо делаю сложные запроcы, но я бы делал через left join и проверял бы, типа если !== NULL то cheked ставил.

    PHP:
    1. $result = mysql_query("SELECT goroda.goroda,list.id FROM goroda LEFT JOIN list ON (goroda.goroda=list.id)");
    2. while ($row = mysql_fetch_array($result )) {
    3. ?>
    4. <td>
    5. <input type="checkbox" <? (!is_null($row[1])) ? 'checked': ''>
    6. </td>
    7.  
    8. <?}?>
    Вряд ли будет, работать, но это скорее пример :D Кто поопытней исправит
     
  7. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    не работает, не выводит значения из таблицы list)
     
  8. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Получилось написать вот такой код, но почему то он дублирует чекбоксы и значения. Как можно от дублей избавиться?

    Код (Text):
    1. $result = mysql_query("SELECT list.tovar_v_stranah_ili_regionah,list.category,list.id,goroda.url,goroda.goroda FROM list, goroda where list.category='1' and goroda.url='$rulo' order by id desc");
    2. while ($cl1 = mysql_fetch_array($result))
    3. {
    4. ?>
    5. <td>
    6. <input type="checkbox" id="fd6" name="options[]" value="<?=$cl1['id']?>" <? if($cl1['id'] == $cl1['goroda']){ echo 'checked';}?>><?=$cl1['tovar_v_stranah_ili_regionah']?>
    7. </td>
    8. <?
    9. }
    10. ?>
     
  9. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Выведи просто все что у тебя приходит в массиве и поймешь почему дублируется.

    PHP:
    1. while ($cl1 = mysql_fetch_array($result)){
    2.        print_r($cl1);
    3. }
     
  10. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    получайте array повторяется
    Код (Text):
    1. Array ( [0]
    только почему так?
     
  11. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    Какой запрос, такой ответ =)
     
  12. hust0

    hust0 Активный пользователь

    С нами с:
    6 июл 2013
    Сообщения:
    321
    Симпатии:
    8
    Код (Text):
    1. SELECT list.tovar_v_stranah_ili_regionah,list.category,list.id,goroda.url,goroda.goroda FROM list, goroda where list.category='1' and goroda.url='$rulo' order by id desc
    странно, но вроде в запросе все верно указал....
     
  13. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив ИЛИ ОБА.
    Используйте mysql_fetch_row() или mysql_fetch_assoc()
     
  14. Познающий php

    Познающий php Новичок

    С нами с:
    23 мар 2017
    Сообщения:
    381
    Симпатии:
    74
    там константа есть, чтобы один получать
     
  15. umbabaraumba

    umbabaraumba Новичок

    С нами с:
    18 июн 2017
    Сообщения:
    100
    Симпатии:
    17
    Там это где?