保持柜台

时间:2010-11-15 10:29:20

标签: php

* 以下是我想要实现的目标:* 基本上我有一个人们可以向我们的数据库提交事件的表单。在CMS中,我有一个页面,显示事件数量的记录。

* 以下是我的内容:* 单击该按钮后,将调用此脚本:

if($subject_type == 'Event') {

  $query = "SELECT town, update_id, event_validex ";
  $query .= "FROM dev_town ";
  $query .= "LEFT JOIN updates ON dev_town.town_id = updates.town ";
  $query .= " WHERE sitename  = '".SITENAME."'";
  $query .= " AND month = " .date('m')." AND year =" .date('Y');

  $querys = $this->tep_db_query($query);
  $rows = $this->tep_db_fetch_array($querys);

  extract($rows); //extract rows, so you don't need to use array 

  $eventid = $event_validex + 1;

  $sql_data_array = array('event_validex' => $eventid);


  $submit_to_database = $this->tep_db_perform('updates', $sql_data_array, 'update', "town='".$town."'");

这很好,但我似乎无法解决下一个问题

这是问题 正如您所看到的,它会检查当前月份的数据库并添加它,这样就可以确定网站名称和那个月,而不是网站和其他月份。

如果在网站名称和月份不存在的情况下如何添加行?

我已经手动添加了几个月的时间,以便它可以工作,我相信你可以同意这是一个球疼。

干杯偷看

3 个答案:

答案 0 :(得分:2)

  1. 如果要检查站点A +月11是否存在,请对其执行选择查询并存储变量中返回的行数。 ($ exists = mysql_num_rows(“您的查询在这里”);)
  2. 然后针对$ exists变量执行if语句并按照您的意愿继续

    if($exists) {
      // update
    } else {
     // add
    }
    

答案 1 :(得分:0)

我没有确切地看到您的方法“检查当前月份的数据库并添加”;我只是假设你的类的tep_db_perform()方法以某种方式处理它。

(呃!n00bed它;帖子的其余部分被切断了?)因为如果找到了记录,你已经使用select命中数据库,那么你可以使用分配的结果集使用$ rows作为检查SITENAME和Month是否存在记录的方法。

见下文:

if($subject_type == 'Event') {

  // build query to check the database for sitename, month and year.
  $query = "SELECT town, update_id, event_validex ";
  $query .= "FROM dev_town ";
  $query .= "LEFT JOIN updates ON dev_town.town_id = updates.town ";
  $query .= " WHERE sitename  = '".SITENAME."'";
  $query .= " AND month = " .date('m')." AND year =" .date('Y');

  // Execute Query(wrapper for $result = mysql_query I guess?)
  $querys = $this->tep_db_query($query);

  // Get a resultset from database. --> you could merge this into one method with $this->tep_db_query
  $rows = $this->tep_db_fetch_array($querys);

  if(count($rows) > 0) {
    extract($rows); //extract rows, so you don't need to use array --> I try to stay away from extract() as it makes for random variables being created. 
    $eventid = $event_validex + 1;
    $sql_data_array = array('event_validex' => $eventid);
    $submit_to_database = $this->tep_db_perform('updates', $sql_data_array, 'update', "town='".$town."'");
  } else {
    // insert new record into database
    // updated with code to execute insert SQL query. 
    $insert = "INSERT INTO updates ('town','month','year','event_validex') VALUES ('".$town."','". date('m')."','". date('Y')."','1')"; 
    $result = $this->tep_db_query($query);
  }
.... 

}

如果我误解了某些内容,请让我知道,很高兴与您合作。

希望这会有所帮助。 :)

答案 2 :(得分:0)

$insert = "INSERT INTO updates ('town','month','year','event_validex') VALUES ('".$town."','". date('m')."','". date('Y')."','1')"; 
    $eventid =  1;
        $sql_data_array = array('event_validex' => $eventid);
        $submit_to_database = $this->tep_db_perform('updates', $sql_data_array, 'update', "town='".$town."'");


  }
 }

这就是我对那里的else语句所拥有的,但是如果它在那里它将添加一个值但是如果它不是那么就不会添加新的条目。?