Jump to content

Recommended Posts

hi, i am trying to test a variable , i have $vote=$vote++;  in one if statement, and echo $vote; in another if statement , but the second $vote is not echoing out. do i have to make $vote global or something? any help greatly appreciated.  here is the code.

 

 

first if

if(isset($_POST['Submit'])){

$votes=$votes++;

if ($average <= 1)  {
$grade = "F";
  echo "You have given $field2 a grade of <strong>F.</strong> ";
  
} else if ($average > 1 && $average <= 2) { 
  $grade = "D";
  echo "You have given $field2 a grade of <strong>D.</strong> ";

} else if ($average > 2 && $average <= 3) { 
   $grade = "C";
  echo "You have given $field2 a grade of <strong>C.</strong> ";

} else if ($average > 3 && $average <= 4) {
   $grade = "B"; 
  echo "You have given $field2 a grade of <strong>B.</strong> ";

} else if ($average > 4 && $average <= 5)  {
   $grade = "A";
  echo "You have given $field2 a grade of <strong>A.</strong> ";

} 

 

second if

 

if(mysql_num_rows($result) > 0)
{
$userinfo = mysql_fetch_array($result); //put friends row into an array $userinfo
$final_grade= ($userinfo[1]+$userinfo[2]+$userinfo[3]+$userinfo[4])/4; //compute final grade
echo $votes;
//average the SQL output friend's total grade for all users input

     if ($final_grade <= 1)  {

     echo $userinfo[0] ." has an average grade of <strong>F.</strong> ";
  
   } else if ($final_grade > 1 && $final_grade <= 2) { 
  
     echo $userinfo[0] ." has an average grade of <strong>D.</strong> ";

   } else if ($final_grade > 2 && $final_grade <= 3) { 
    
     echo $userinfo[0]." has an average grade of <strong>C.</strong> ";

   } else if ($final_grade > 3 && $final_grade <= 4) {
   
     echo $userinfo[0]." has an average grade of <strong>B.</strong> ";

   } else if ($final_grade > 4 && $final_grade <= 5)  {
   
     echo $userinfo[0]." has an average grade of <strong>A.</strong> ";

    } 
else {

echo "Odd results ".$userinfo[0]." $final_grade ".$userinfo[1]." ".$userinfo[2]." ".$userinfo[3]." ".$userinfo[4]."<br />";

}

}//end if


}//end isset

Link to comment
https://forums.phpfreaks.com/topic/189210-variable-scope-question/
Share on other sites

thank you. when i submit the vote, the $votes is supposed to be incremented, and then shown in the second if statement. but i cant figure out why my code doesnt work. is my code right? please. thanks. derek

 

here is the full code

 

<?php
include("connect1.php");


error_reporting(E_ALL);  //error reporting php function
////////////////////////////////////////
////////////////////////////////////////


// escape username and password for use in SQL//person said on board "looks fine" like this
//to prevent sql injections
  
$field2 = mysql_real_escape_string($field2);
$field3 = mysql_real_escape_string($field3);


/// query db and loop through rows example

$field2 = $_POST['friend'];
$field3   = $_POST['zip'];
$field4   = $_POST['grade1'];
$field5   = $_POST['grade2'];
$field6   = $_POST['grade3'];
$field7 = $_POST['grade4'];


$find = $_POST['find'];


$field4 = (int)$field4;
$field5 = (int)$field5;
$field6 = (int)$field6;
$field7 = (int)$field7;


    
$total = 4;
$sum = $field4 + $field5 + $field6 + $field7;       
$average = $sum/$total;

if(isset($_POST['Submit'])){

$votes=$votes++;

if ($average <= 1)  {
$grade = "F";
  echo "You have given $field2 a grade of <strong>F.</strong> ";
  
} else if ($average > 1 && $average <= 2) { 
  $grade = "D";
  echo "You have given $field2 a grade of <strong>D.</strong> ";

} else if ($average > 2 && $average <= 3) { 
   $grade = "C";
  echo "You have given $field2 a grade of <strong>C.</strong> ";

} else if ($average > 3 && $average <= 4) {
   $grade = "B"; 
  echo "You have given $field2 a grade of <strong>B.</strong> ";

} else if ($average > 4 && $average <= 5)  {
   $grade = "A";
  echo "You have given $field2 a grade of <strong>A.</strong> ";

} 

///you need to know all the vote values, then divide them by the total, to get average
///where do i store all the vote values? you have to store all the votes for each specific friend. but how? then i have to be able to update the grade based on all the averages.
/*Quick suggestion without too much thought, would be to have all the "grades" in a separate table and join them on the userid.

id - numeric - [record number]
uid - numeric [FK for user table]
type - char - [code to identify which grade]
value - numeric - [value for the grading]
vid - numeric - [id of voter]


that covers another of your questions. How to stop fake voting.*/

mysql_query("INSERT INTO friendgrade (grade, friend, zip,courtesy,stability,loyalty,attitude, votes) VALUES('$field2','$field3', '$field4' , '$field5',' $field6', '$field7','$votes' )  ON DUPLICATE KEY UPDATE courtesy = courtesy + $field4,  stability = stability + $field5, loyalty = loyalty + $field6, attitude = attitude + $field7");


}//end isset

  
  
  
  //output the friend's row into an array and average all rows of his attributes.
if(isset($_POST['submit'])){
  $query="SELECT friend, loyalty, courtesy, stability, attitude , votes
FROM friendgrade
WHERE friend  = '$find'";
$result=mysql_query($query); 

if(mysql_num_rows($result) > 0)
{
$userinfo = mysql_fetch_array($result); //put friends row into an array $userinfo
$final_grade= ($userinfo[1]+$userinfo[2]+$userinfo[3]+$userinfo[4])/4; //compute final grade

//average the SQL output friend's total grade for all users input

     if ($final_grade <= 1)  {

     echo $userinfo[0] ." has an average grade of <strong>F.</strong> ". $userinfo[5] . " people voted.";
  
   } else if ($final_grade > 1 && $final_grade <= 2) { 
  
     echo $userinfo[0] ." has an average grade of <strong>D.</strong> ". $userinfo[5] . " people voted.";

   } else if ($final_grade > 2 && $final_grade <= 3) { 
    
     echo $userinfo[0]." has an average grade of <strong>C.</strong> ". $userinfo[5] . " people voted.";

   } else if ($final_grade > 3 && $final_grade <= 4) {
   
     echo $userinfo[0]." has an average grade of <strong>B.</strong> ". $userinfo[5] . " people voted.";

   } else if ($final_grade > 4 && $final_grade <= 5)  {
   
     echo $userinfo[0]." has an average grade of <strong>A.</strong> ". $userinfo[5] . " people voted.";

    } 
else {

echo "Odd results ".$userinfo[0]." $final_grade ".$userinfo[1]." ".$userinfo[2]." ".$userinfo[3]." ".$userinfo[4]."<br />";

}

}//end if


}//end isset

  




    
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Update Statement</title>
<style type="text/css">
<!--
.style1 {color: #990000}
.style2 {color: #0066FF}
.style3 {color: #0000CC}
.style4 {color: #993399}
-->
</style>
</head>

<body>

</p>
<div align="center">WELCOME TO THE FRIENDGRADER</div>
<p>Please enter a friend, their zip code, and rate them with the following criteria.<span class="style4"></span><br />
</p>
<form id="form1" name="form1" method="post" action="">

  <table border="0">
   
    <tr>
      <td>Friend</td>
      <td>
        <input name="friend" type="text" id="friend" /></td>
    </tr>
    <tr>
      <td>zip code</td>
      <td>
       <input name="zip" type="text" id="zip" />      </td>
    </tr>
    <tr>
      <td>courtesy</td>
      <td><table>
        <tr>
          <td>
            <input type="radio" name="grade1" value="1" id="RadioGroup1_0" />
            very poor
            <input type="radio" name="grade1" value="2" id="RadioGroup1_1" />
poor
<input type="radio" name="grade1" value="3" id="RadioGroup1_2" />
ok
<input type="radio" name="grade1" value="4" id="RadioGroup1_3" />
good
<input type="radio" name="grade1" value="5" id="RadioGroup1_4" />
excellent </td>
        </tr>
       
      </table>      </td>
    </tr>
   
   
    <tr>
      <td>stability</td>
      <td><input type="radio" name="grade2" id="very_poor3" value="1" />
very poor
  <input type="radio" name="grade2" id="poor3" value="2" />
poor
<input type="radio" name="grade2" id="ok3" value="3" />
ok
<input type="radio" name="grade2" id="good3" value="4" />
good
<input type="radio" name="grade2" id="excellent3" value="5" />
excellent</td>
    </tr>
    <tr>
      <td>loyalty</td>
      <td><input type="radio" name="grade3" id="very_poor4" value="1" />
very poor
  <input type="radio" name="grade3" id="poor4" value="2" />
poor
<input type="radio" name="grade3" id="ok4" value="3" />
ok
<input type="radio" name="grade3" id="good4" value="4" />
good
<input type="radio" name="grade3" id="excellent4" value="5" />
excellent</td>
    </tr>
    <tr>
      <td>attitude</td>
      <td><input type="radio" name="grade4" id="very_poor5" value="1" />
very poor
  <input type="radio" name="grade4" id="poor5" value="2" />
poor
<input type="radio" name="grade4" id="ok5" value="3" />
ok
<input type="radio" name="grade4" id="good5" value="4" />
good
<input type="radio" name="grade4" id="excellent5" value="5" />
excellent</td>
    </tr>
    <tr>
      <td> </td>
      <td><input type="submit" name="Submit" value="Submit" /></td>
    </tr>
  </table>
   

</form>
<form id="form2" name="form2" method="post" action="">
<table width="335" border="1">
    <tr>
      <td width="325"> search friends
          <input type="text" name="find" id="find" />     </td>
    </tr>
    <tr>
      <td><input type="submit" name="submit" id="submit" value="submit" /></td>
    </tr>
  </table>
  </form>

</body>
</html>

thank you, but it doesnt output anything when i added that code.

 

i submit the "friend" attributes and do a $votes++, then i add them to the database here, including $votes.

 

mysql_query("INSERT INTO friendgrade (grade, friend, zip,courtesy,stability,loyalty,attitude, votes) VALUES('$field2','$field3', '$field4' , '$field5',' $field6', '$field7','$votes' )  ON DUPLICATE KEY UPDATE courtesy = courtesy + $field4,  stability = stability + $field5, loyalty = loyalty + $field6, attitude = attitude + $field7");

 

then when i search for a "friend" via the form, the output is supposed to be

 

"(friend name) has been given an average of A" 10 people voted."

 

or something similar that was just an example.

 

any more help GREATLY appreciated. thank you for looking at my code. derek

 

if you want you can try out the page here

 

http://oddnerdrum.info/friendgrade_a2.php

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.