Проверка наличия данных в таблице

#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 — служба присутствует на хосте
  • и еще — проблема с таблицей в базе данных