#php #sql
#php #sql
Вопрос:
Я спросил кое-что о in_array () и у меня уже получилось это сделать. Но теперь у меня другая проблема:
У меня есть таблица, в которой указано, какие службы назначены хостам: services_hosts (service_id, host_id).
Как я могу узнать, назначена ли выбранная служба уже этому хосту, также выбранному? В принципе, я хочу посмотреть, существует ли уже конкретная строка (service_id, host_id) в этой таблице.
РЕДАКТИРОВАТЬ: Проблема в том, что я хочу сравнить в отдельном файле, который имеет функции, подключающиеся к БД:
function addServiceToHost($service_name, $host_id)
{
$query = "INSERT INTO monitoring_hosts_services (service_id, host_id) values ((SELECT service_id FROM monitoring_services WHERE name = '".$service_name."'), '".$host_id."')";
$result = @pg_exec($this->conn, $query);
if ($row = pg_fetch_row($result))
{
"blabla error msg"
exit;
}
return $this->parseResultObj($result);
}
Комментарии:
1. Пожалуйста, предоставьте больше информации, опубликуйте структуру таблицы, например
2. итак, вы хотите знать, выполнялась ли эта функция ранее?? или она была установлена??
Ответ №1:
Возможно, я неправильно понял ваш вопрос, но поможет ли это:
SELECT * FROM ServerHostsTable WHERE service_id = '5' AND host_id = '8'
Ответ №2:
$query = ("SELECT * FROM ServerHostsTable WHERE service_id = '5' AND host_id = '8'")
if(mysql_num_rows($query)>0)
{
//the item is in the db
}
else
{
//not in the db
}
надеюсь, это поможет
Ответ №3:
ваш вопрос не очень ясен, но, насколько я понимаю, вы хотите проверить, вставлена ли определенная строка в таблицу базы данных. вы могли бы сделать это следующим образом:
$result=mysql_query("SELECT service_id FROM services_hosts WHERE service_id=$theserviceid AND host=$thehostid");
if($row=mysql_fetch_row($result){
echo "already in the db";
} else {
echo "not in the db!";
}
Ответ №4:
Я бы выполнил этот запрос.
$sql = "SELECT COUNT(*) AS retn";
$sql.= "FROM services_hostsn";
$sql.= "WHERE service_id = $service_idn";
$sql.= "AND host_id = $host_id";
Результатом должна быть одна строка с одним полем (с именем ret
):
- 0 — служба отсутствует на хосте
- 1 — служба присутствует на хосте
- и еще — проблема с таблицей в базе данных