PHP: $rt15f=mysql_query("select * from `goroda`"); $row=mysql_fetch_array($rt15f); $selectprojectid = mysql_query("SELECT * FROM list where `category`='1'"); while ($cl1 = mysql_fetch_array($selectprojectid)) { ?> <td> <input type="checkbox" id="fd6" name="options[]" value="<?=$cl1['id']?>" <?if ($cl1['id'] == $row['goroda']){echo 'checked';}else{}?>><?=$cl1['tovar_v_stranah_ili_regionah']?> </td> <?}?> При редактировании товара, должны быть отмечены те чекбоксы которые имеются в таблице "goroda", но почему то $cl1['id'] == $row['goroda'] видит только первый, т.е. $row['goroda'] только выводит одно значение.... Может знает кто то как правильнее?
Я не знаю, я не понимаю логику твоего кода. даже на уровне такого $cl1['id'] == $row['goroda'] у меня уже жуткий диссонанс, как может быть id == goroda Наверное, тебе помогут, если ты покажешь свои таблицы и объяснишь что хочешь вывести.
Есть таблица где есть города с характеристиками $cl1['id'] Есть таблица goroda и в нем столбик тоже называется goroda, в столбике записываются ID, которые берутся из $cl1.. Хочу чтобы сверял ид, т.е. если id есть в goroda то выводит checked...
Я честно говоря не особо хорошо делаю сложные запроcы, но я бы делал через left join и проверял бы, типа если !== NULL то cheked ставил. PHP: $result = mysql_query("SELECT goroda.goroda,list.id FROM goroda LEFT JOIN list ON (goroda.goroda=list.id)"); while ($row = mysql_fetch_array($result )) { ?> <td> <input type="checkbox" <? (!is_null($row[1])) ? 'checked': ''> </td> <?}?> Вряд ли будет, работать, но это скорее пример Кто поопытней исправит
Получилось написать вот такой код, но почему то он дублирует чекбоксы и значения. Как можно от дублей избавиться? Код (Text): $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"); while ($cl1 = mysql_fetch_array($result)) { ?> <td> <input type="checkbox" id="fd6" name="options[]" value="<?=$cl1['id']?>" <? if($cl1['id'] == $cl1['goroda']){ echo 'checked';}?>><?=$cl1['tovar_v_stranah_ili_regionah']?> </td> <? } ?>
Выведи просто все что у тебя приходит в массиве и поймешь почему дублируется. PHP: while ($cl1 = mysql_fetch_array($result)){ print_r($cl1); }
Код (Text): 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 странно, но вроде в запросе все верно указал....
mysql_fetch_array — Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив ИЛИ ОБА. Используйте mysql_fetch_row() или mysql_fetch_assoc()