mysql - Limit number of entires inserted into DB, PHP/AJAX -
im trying build function users on website can unter 3 different interests. interests inserted db using ajax, scripts below...
form:
<div id="insert_response"></div> <form action="javascript:insert()" method="post"> <input name="useridint" type="hidden" id="useridint" value="<?php echo $usersclass->userid(); ?>"/>
ajax:
function createobject() { var request_type; var browser = navigator.appname; if(browser == "microsoft internet explorer"){ request_type = new activexobject("microsoft.xmlhttp"); }else{ request_type = new xmlhttprequest(); } return request_type; } var http = createobject(); /* -------------------------- */ /* insert */ /* -------------------------- */ /* required: var nocache random number add request. value solve internet explorer cache issue */ var nocache = 0; function insert() { // optional: show waiting message in layer id login_response document.getelementbyid('insert_response').innerhtml = "just second..." // required: verify fileds not empty. use encodeuri() solve issues character encoding. var useridint= encodeuri(document.getelementbyid('useridint').value); var interest = encodeuri(document.getelementbyid('interest').value); // set te random number add url request nocache = math.random(); // pass login variables url variable http.open('get', 'upd_interests.php?useridint= '+useridint+'&interest=' +interest+'&nocache = '+nocache); http.onreadystatechange = insertreply; http.send(null); } function insertreply() { if(http.readystate == 4){ var response = http.responsetext; // else if login ok show message: "site added+ site url". document.getelementbyid('insert_response').innerhtml = response; } }
php:
<?php require 'config.inc.php'; ?> <!-- verify if user exists login --> <?php if(isset($_get['useridint']) && isset($_get['interest'])){ $url= $_get['useridint']; $sitename= $_get['interest']; $insertsite_sql = "insert user_interests (user_id, interest) values('{$url}' , '{$sitename}')"; $insertsite= mysql_query($insertsite_sql) or die(mysql_error()); echo $sitename; } else { echo 'error! please fill fileds!'; } ?>
what im asking is, possible can somehow have 3 records in database each user? once user has entered 3 rows, can no longer enter more? if best option be?
thanks
in response @daniel suggestion tried following not inserting...
$res = mysql_query("select count(*) cnt user_interests user_id=$useridint") while($r=mysql_fetch_array($res)) { if($r["cnt"] < 3) { if(isset($_get['useridint']) && isset($_get['interest'])){ $url= $_get['useridint']; $sitename= $_get['interest']; $insertsite_sql = "insert user_interests (user_id, interest) values('{$url}' , '{$sitename}')"; $insertsite= mysql_query($insertsite_sql) or die(mysql_error()); echo $sitename; } else { echo 'error! please fill fileds!'; } } else { echo "you have 3 "; } }
just run . idea escape user input. in case user decides favorite site ;drop databases--;
$res = mysql_query("select count(*) cnt user_interests user_id=$useridint") while($r=mysql_fetch_array($res)) { if($r["cnt"] < 3) { insert } else { error } }
Comments
Post a Comment