- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Селект выводит список категорий из mysql бд с возможностью выбора.
<option value="0"<?php if($a['category'] == 0) { print "selected"; } ?>>Все категории</option>
<?php
$query = "SELECT id, title FROM category ORDER by title ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
print "<option value=\"".$row['id']."\"";
if($a['category'] == $row['id']) { print "selected"; }
print ">".$row['title']."</option>";
}
?>
</select>
При сабмите данные пишутся в таблицу - поле category тип smallint(1)
Хочу сделать возможность выбрать несколько категорий..
В select добавил multiple для выбора. В БД Поле category поменял тип smallint(1) на int(7)
Сейчас код выглядит так:
<option value="0"<?php if($a['category'] == 0) { print "selected"; } ?>>Все категории</option>
<?php
$query = "SELECT id, title FROM category ORDER by title ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
print "<option value=\"".$row['id']."\"";
if($a['category'] == $row['id']) { print "selected"; }
print ">".$row['title']."</option>";
}
?>
</select>
Категории выделяются, но при сохранинии всё равно в БД попадает только одна категория, на которой стоял курсор..
Вот полный код добавления сайта в базу (с выбором категории):
if($_GET['act'] == 'save') {
$url = addslashes(htmlspecialchars($_POST['url'], ENT_QUOTES));
$backtraf = addslashes(htmlspecialchars($_POST['backtraf'], ENT_QUOTES));
$dostup = addslashes(htmlspecialchars($_POST['dostup'], ENT_QUOTES));
$cat = intval($_POST['category']);
$noadult = intval($_POST['noadult']);
$back_banner = addslashes(htmlspecialchars($_POST['back_banner'], ENT_QUOTES));
$back_strike = addslashes(htmlspecialchars($_POST['back_strike'], ENT_QUOTES));
$back_icq = addslashes(htmlspecialchars($_POST['back_icq'], ENT_QUOTES));
$back_peeldown = addslashes(htmlspecialchars($_POST['back_peeldown'], ENT_QUOTES));
$back_block = addslashes(htmlspecialchars($_POST['back_block'], ENT_QUOTES));
$back_slider = addslashes(htmlspecialchars($_POST['back_slider'], ENT_QUOTES));
$back_hcontext = addslashes(htmlspecialchars($_POST['back_hcontext'], ENT_QUOTES));
$back_vcontext = addslashes(htmlspecialchars($_POST['back_vcontext'], ENT_QUOTES));
$back_htizer = addslashes(htmlspecialchars($_POST['back_htizer'], ENT_QUOTES));
$back_vtizer = addslashes(htmlspecialchars($_POST['back_vtizer'], ENT_QUOTES));
$urls = substr($url, 0, 4);
if($urls != "http") {
$url = "http://".$url;
}
$url = str_replace("www.","", $url);
$urls = substr($backtraf, 0, 4);
if($urls != "http" && $urls) {
$backtraf = "http://".$backtraf;
}
$durl = parse_url($url);
$www = $durl[host];
if(!$url || $url == "http://") {
print "<p class=\"er\">".$lng['er_enter_url']."! <a href=\"?action=add\">« ".$lng['back']."</a></p>";
} elseif (mysql_num_rows(mysql_query('SELECT url FROM webmasters WHERE url = "'.$url.'" LIMIT 1'))) {
print "<p class=\"er\">".$lng['er_url_db']."! <a href=\"?action=add\">« ".$lng['back']."</a></p>";
} elseif (mysql_num_rows(mysql_query("SELECT * FROM blacklist WHERE lower(url) like lower('%$www%')"))) {
print "<p class=\"er\">".$lng['er_url_bl']."! <a href=\"?action=add\">« ".$lng['back']."</a></p>";
} else {
if($status == 1) { $st = 0; } else { $st = 1; }
$sql = 'INSERT INTO webmasters (url, user_id, category, noadult, backtraf, status, dostup, back_banner, back_strike, back_icq, back_peeldown, back_block, back_slider, back_hcontext, back_vcontext, back_htizer, back_vtizer) VALUES ("'.$url.'", '.$user_id.', '.$cat.', '.$noadult.', "'.$backtraf.'", '.$st.', "'.$dostup.'", "'.$back_banner.'", "'.$back_strike.'", "'.$back_icq.'", "'.$back_peeldown.'", "'.$back_block.'", "'.$back_slider.'", "'.$back_hcontext.'", "'.$back_vcontext.'", "'.$back_htizer.'", "'.$back_vtizer.'")';
if(mysql_query($sql)) {
$lid = mysql_insert_id();
$date = date("d.m.Y");
mysql_query("INSERT INTO wm_logs (date, user_id, site_id) VALUES ('".$date."', ".$user_id.", ".$lid.")");
print "<p class=\"erok\">".$lng['er_add_url']."! <a href=\"?action=\">".$lng['my_sites']."</a></p>";
$headers = "From: ".$user_mail."\n";
$headers .= "Reply-to: ".$user_mail."\n";
$headers .= "X-Sender: < http://".$cfgURL." >\n";
$headers .= "Content-Type: text/html; charset=utf-8\n";
$subj = "Добавлен новый сайт вебмастера";
$textform = "В ваш проект ".$cfgURL." добавлен новый сайт ".$url.". Промодерируйте его пожалуйста!";
$send = mail($adminmail,$subj,$textform,$headers);
} else {
print "<p class=\"er\">".$lng['er_bd']."! <a href=\"?action=add\">« ".$lng['back']."</a></p>";
}
}
} else {
?>
<form action='?action=add&act=save' method='post'>
<table align="center" width="460" style="width: 460px;" border="0" bgcolor="#b0cae3" cellpadding="1" cellspacing="1">
<tr bgcolor="#eeeeee">
<td>URL: </td>
<td><input type='text' name='url' value='http://' size='58' maxlength="120" style="width: 330px;" /></td>
</tr>
<tr bgcolor="#eeeeee">
<td><?php print $lng['category']; ?>: </td>
<td>
<select name="category" style="width: 330px;" multiple>
<option value="0">Все категории</option>
<?php
$query = "SELECT id, title FROM category ORDER by title ASC";
$result = mysql_query($query);
while($row = mysql_fetch_array($result)) {
print "<option value=\"".$row['id']."\">".$row['title']."</option>";
}
?>
</select>
</td>
</tr>
</table>
<div align="center" style="padding-top: 10px;"><input class="subm" type='submit' name='submit' value='Добавить сайт' /></div>
</form>
<?php } ?>
Как загнать массивом? Может кто помочь?
Зачем? :)
Вам нужно поменять как минимум на varchar и добавлять значения через разделитель (,;| и т.п.)
varchar тоже пробовал.. Хотелось бы побольше конкретики, ибо в пхп не особо силён.
varchar тоже пробовал.. Хотелось бы побольше конкретики, ибо в пхп не особо силён.
Какой ещё конкретики? За вас код что-ли написать?
Вам тогда сюда: /ru/forum/webmasters-jobs
За вас код что-ли написать?
А почему бы и нет?! :)
Там поправить нужно всего пару строк.. просто у меня на это может уйти очень много времени (
Там поправить нужно всего пару строк..
Вам выше подсказали как можно заносить массив в бд, меняйте тип поле с int на varchar и заносите через разделитель ( implode(':',$array) ), либо как сериализованный массив (serialize($array)).
varchar то сразу поставил, но переписать запрос данных не получается..
Знаю, что можно сделать как-то через foreach, но не соображу..
Замените
на
developer_php, теперь в БД не пишет вообще..
Вот для наглядности структура:
Этот код формирует в $cat список категорий через запятую. Если в БД поле varchar нет причин не работать.