SitePoint Sponsor

User Tag List

Results 1 to 3 of 3

Thread: Any Help for me

  1. #1
    SitePoint Member
    Join Date
    Mar 2013
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Any Help for me

    Hello, can some one please help me but I get errors like

    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /Applications/MAMP/htdocs/live/vote_process.php on line 45

    This error shows up when I like(thumbs up) a content or article and the record in the database table never updates. But the error never shows up when I dislike(thumbs down) a content or article.

    The dislike(thumbs down) record will show on the page when you dislike but will show 0 once you refresh the page. is there better way to correct this? Below is my code:

    The PHP CODE

    PHP Code:
    <?php




    if($_POST)
    {
            
        
    ### connect to mySql
        
    $sql_con mysqli_connect($db_host$db_username$db_password,$db_name)or die('could not connect to database');

        
    //get type of vote from client
        
    $user_vote_type trim($_POST["vote"]);
        
        
    //get unique content ID and sanitize it (cos we never know).
        
    $music_id filter_var(trim($_POST["music_id"]),FILTER_SANITIZE_STRINGFILTER_FLAG_STRIP_LOW FILTER_FLAG_STRIP_HIGH);
        
        
    //Convert content ID to MD5 hash (optional)
        
    $music_id hash('md5'$music_id);
        
        
    //check if its an ajax request, exit if not
        
    if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
            die();
        } 
        

        switch (
    $user_vote_type)
        {            
            
            
    ##### User liked the content #########
            
    case 'up'
                
                
    //check if user has already voted, determined by unique content cookie
                
    if (isset($_COOKIE["voted_".$music_id]))
                {
                    
    header('HTTP/1.1 500 Already Voted'); //cookie found, user has already voted
                    
    exit(); //exit script
                
    }
                
                
    //get vote_up value from db using music_id
                
    $qur mysqli_query($sql_con,"SELECT like FROM music_like WHERE music_id='$music_id' LIMIT 1");
                
    $get_total_rows mysqli_fetch_assoc($qur);
                
                if(
    $get_total_rows)
                {
                    
    //found record, update vote_up the value
                    
    mysqli_query($sql_con,"UPDATE music_like SET like=like+1 WHERE music_id='$music_id'");
                }else{
                    
    //no record found, insert new record in db
                    
    mysqli_query($sql_con,"INSERT INTO music_like (music_id, like) value('$music_id',1)");
                }
                
                
    setcookie("voted_".$music_id1time()+7200); // set cookie that expires in 2 hour "time()+7200".
                
    echo ($get_total_rows["like"]+1); //display total liked votes
                
    break;    
            
            
    ##### User disliked the content #########
            
    case 'down'
                
                
    //check if user has already voted, determined by unique content cookie
                
    if (isset($_COOKIE["voted_".$music_id]))
                {
                    
    header('HTTP/1.1 500 Already Voted this Content!'); //cookie found, user has already voted
                    
    exit(); //exit script
                
    }

                
    //get vote_up value from db using unique_content_id
                
    $qur mysqli_query($sql_con,"SELECT dislike FROM music_like WHERE music_id='$music_id' LIMIT 1");
                
    $get_total_rows mysqli_fetch_assoc($qur);
                
                if(
    $get_total_rows)
                {
                    
    //found record, update vote_down the value
                    
    mysqli_query($sql_con,"UPDATE music_like SET dislike=dislike+1 WHERE music_id='$music_id'");
                }else{
                    
                    
    //no record found, insert new record in db
                    
    mysqli_query($sql_con,"INSERT INTO music_like (music_id, dislike) value('$music_id',1)");
                }
                
                
    setcookie("voted_".$music_id1time()+7200);  // set cookie that expires in 2 hour "time()+7200".
                
    echo ($get_total_rows["dislike"]+1);//display total disliked votes
                
    break;    
            
            
    ##### respond votes for each content #########        
            
    case 'fetch':
                
    //get vote_up and vote_down value from db using unique_content_id
                
    $qur mysqli_query($sql_con,"SELECT like, dislike FROM music_like WHERE music_id='$music_id' LIMIT 1");
                
    $row mysqli_fetch_assoc($qur);
                
                
    //making sure value is not empty.
                
    $like         = ($row["like"])?$row["like"]:0
                
    $dislike     = ($row["dislike"])?$row["dislike"]:0;
                
                
    //build array for php json
                
    $send_response = array('like'=>$like'dislike'=>$dislike);
                echo 
    json_encode($send_response); //display json encoded values
                
    break;

        }

    }
    ?>
    The JQUERY CODE
    Code JavaScript:
    $(document).ready(function() {
     
    	//####### on page load, retrive votes for each content
    	$.each( $('.voting_wrapper'), function(){
     
    		//retrive music_id from this voting_wrapper element
    		var music_id = $(this).attr("id");
     
    		//prepare post content
    		post_data = {'music_id':music_id, 'vote':'fetch'};
     
    		//send our data to "vote_process.php" using jQuery $.post()
    		$.post('vote_process.php', post_data,  function(response) {
     
    				//retrive votes from server, replace each vote count text
    				$('#'+music_id+' .like').text(response.like); 
    				$('#'+music_id+' .dislike').text(response.dislike);
    			},'json');
    	});
     
    	//####### on button click, get user vote and send it to vote_process.php using jQuery $.post().
    	$(".voting_wrapper .voting_btn").click(function (e) {
     
    		//get class name (down_button / up_button) of clicked element
    		var clicked_button = $(this).children().attr('class');
     
    		//get unique ID from voted parent element
    		var music_id = $(this).parent().attr("id"); 
     
    		if(clicked_button==='down_button') //user disliked the content
    		{
    			//prepare post content
    			post_data = {'music_id':music_id, 'vote':'down'};
     
    			//send our data to "vote_process.php" using jQuery $.post()
    			$.post('vote_process.php', post_data, function(data) {
     
    				//replace vote down count text with new values
    				$('#'+music_id+' .dislike').text(data);
     
    				//thank user for the dislike
    				alert("Thanks! Each Vote Counts, Even Dislikes!");
     
    			}).fail(function(err) { 
     
    			//alert user about the HTTP server error
    			alert(err.statusText); 
    			});
    		}
    		else if(clicked_button==='up_button') //user liked the content
    		{
    			//prepare post content
    			post_data = {'music_id':music_id, 'vote':'up'};
     
    			//send our data to "vote_process.php" using jQuery $.post()
    			$.post('vote_process.php', post_data, function(data) {
     
    				//replace vote up count text with new values
    				$('#'+music_id+' .like').text(data);
     
    				//thank user for liking the content
    				alert("Thanks! For Liking This Content.");
    			}).fail(function(err) { 
     
    			//alert user about the HTTP server error
    			alert(err.statusText); 
    			});
    		}
     
    	});
    	//end 
     
     
     
    });
    Last edited by cpradio; May 10, 2013 at 04:56. Reason: Added php tags

  2. #2
    SitePoint Evangelist
    Join Date
    Oct 2005
    Location
    Michigan, USA
    Posts
    434
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Your query is failing. My guess is $music_id is not what you expect.
    "SELECT like FROM music_like WHERE music_id='$music_id' LIMIT 1"

    If so, it's probably due to this line:
    var music_id = $(this).parent().attr("id");
    - Robert

  3. #3
    SitePoint Evangelist captainccs's Avatar
    Join Date
    Mar 2004
    Location
    Caracas, Venezuela
    Posts
    515
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by billyston View Post
    Hello, can some one please help me but I get errors like

    Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /Applications/MAMP/htdocs/live/vote_process.php on line 45
    You need to find out the contents of the parameter to discover why mysql does not like it. One way is to print it out on line 44 with
    PHP Code:
    var_dump($bad_parameter); 
    Next you try to discover where the wrong data was inserted into $bad_parameter

    http://www.php.net/manual/en/function.var-dump.php
    Denny Schlesinger
    web services


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •