feri_soft Posted November 20, 2006 Share Posted November 20, 2006 How to create something like a newslater but where users define their limitations and whenever a new item is added the script searches throught the limitations table and email each user which limitations match these of the added item :)For example a user submits to be emailed whenever an item with cat asd is added and any other value of 200. I want when a new item is added the script to search throught the users records which are saved in a table and find these which match the added item and email those users ;) Quote Link to comment Share on other sites More sharing options...
Caesar Posted November 20, 2006 Share Posted November 20, 2006 Asuming there's a "notify" table where rows are inserted whenever a customer chooses the option of being notified when a particular item is added/available...with the a field that has the item's id in it....[code]<?php $db->query("INSERT INTO items (sku, title, price) VALUES ('$addnew[sku]','$addnew[title]','$addnew[price]')"); $query = "SELECT * FROM notify WHERE itemid = '$addnew[itemid]'"; $customers = $db->query($query); while($ncustomers = $db->fetch_row($customers)) { mail (YOUR EMAIL CRITERIA HERE); $db->query("DELETE FROM notify WHERE itemid = '$addnew[itemid]'"); }?>[/code]Or something similar. Example is just to show a possible approach. Quote Link to comment Share on other sites More sharing options...
feri_soft Posted November 21, 2006 Author Share Posted November 21, 2006 yes thats ok,but the problem is that i dont have the new item id but a long where cluase with possible options like between x and x .... > x etc....and i need first ti verify for which of the users requierments the new item is fine then select the users id and send them the mail ;) Quote Link to comment Share on other sites More sharing options...
feri_soft Posted November 22, 2006 Author Share Posted November 22, 2006 I found this in one application which is very simillar to what i want to do but i dont know the "-" use of substr and some other things. Can you show a different approach to do the same or explain the code please:[code=php]<?phpfunction notify_new_listing($listingID) { global $conn, $lang, $config; $display = ''; require_once($config['basepath'] . '/include/misc.inc.php'); $misc = new misc(); require_once($config['basepath'] . '/include/search.inc.php'); $sql = "SELECT userdb_id, usersavedsearches_title, usersavedsearches_query_string, usersavedsearches_notify FROM " . $config['table_prefix'] . "usersavedsearches WHERE usersavedsearches_notify = 'yes'"; $recordSet = $conn->Execute($sql); if ($recordSet === false) { $misc->log_error($sql); } while (!$recordSet->EOF) { $query_string = $misc->make_db_unsafe($recordSet->fields['usersavedsearches_query_string']); $user_id = $recordSet->fields['userdb_id']; $search_title = $misc->make_db_unsafe($recordSet->fields['usersavedsearches_title']); // Break Quesry String up into $_GET variables. unset($_GET); $query_string = urldecode($query_string); $criteria = explode('&', $query_string); foreach ($criteria as $crit) { if ($crit != '') { $pieces = explode('=', $crit); $pos = strpos($pieces[0], '[]'); if ($pos !== false) { $name = substr($pieces[0], 0, -2); $_GET[$name][] = $pieces[1]; }else { $_GET[$pieces[0]] = $pieces[1]; } } } if (!isset($_GET)) { $_GET[] = ''; } $matched_listing_ids = search_page::search_results(true); if (in_array($listingID, $matched_listing_ids)) { // Listing Matches Search $sql = "SELECT userdb_user_name, userdb_emailaddress FROM " . $config['table_prefix'] . "userdb WHERE userdb_id = " . $user_id; $recordSet2 = $conn->Execute($sql); if ($recordSet2 === false) { $misc->log_error($sql); } $email = $misc->make_db_unsafe($recordSet2->fields['userdb_emailaddress']); $user_name = $misc->make_db_unsafe($recordSet2->fields['userdb_user_name']); $message = $lang['automated_email'] . "\r\n\r\n\r\n" . date("F j, Y, g:i:s a") . "\r\n\r\n" . $lang['new_listing_notify_long'] . "'" . $search_title . "'.\r\n\r\n" . $lang['click_on_link_to_view_listing'] . "\r\n\r\n$config[baseurl]/index.php?action=listingview&listingID=" . $listingID . "\r\n\r\n\r\n" . $lang['automated_email'] . "\r\n"; // Send Mail $sent = $misc->send_email($config['admin_name'], $config['admin_email'], $email, $message, $lang['new_listing_notify']); $display .= $lang['new_listing_email_sent'] . $user_name . "': " . $lang['new_listing_notify'] . "'" . $search_title . "'<br>"; } $recordSet->MoveNext(); } // while return $display; }?>[/code] Quote Link to comment Share on other sites More sharing options...
feri_soft Posted November 23, 2006 Author Share Posted November 23, 2006 Ideas?? Quote Link to comment Share on other sites More sharing options...
feri_soft Posted November 28, 2006 Author Share Posted November 28, 2006 bump Quote Link to comment Share on other sites More sharing options...
feri_soft Posted December 28, 2006 Author Share Posted December 28, 2006 Asking again, may be now someone can help !? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.