Jump to content

Increasing variable scope.


Perad

Recommended Posts

I want the $columns variable to be able to be a value which i submit to my database. its scope seems to end just before the line..
  if (isset($_POST['submit2'])) {

How can i extend this so it will available in the above if statement?

[code]<?php 
$dbc = mysql_connect ('localhost','root','admin');
mysql_select_db ('UNC',$dbc);
function NumberOfPlayers() {
global $columns;
$players = 0;
if (isset($_POST['submit1'])) {
// Switch to generate player value + columns data
switch($_POST['matchsize']) {
case '1v1':
$players = 2;
$columns = "(player1, player2)";
break;
case '2v2':
$players = 4;
$columns = "(player1, player2, player3, player4)";
break;
case '3v3':
$players = 6;
$columns = "(player1, player2, player3, player4, player5, player6)";
break;
case '4v4':
$players = 8;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8)";
break;
case '5v5':
$players = 10;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10)";
break;
case '6v6':
$players = 12;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12)";
break;
case '7v7':
$players = 14;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14)";
break;
case '8v8':
$players = 16;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14, player15, player16)";
break;
case '9v9':
$players = 18;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14, player15, player16, player17, player18)";
break;
case '10v10':
$players = 20;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14, player15, player16, player17, player18, player19, player20)";
break;
case '11v11':
$players = 22;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14, player15, player16, player17, player18, player19, player20, player21, player22)";
break;
case '12v12':
$players = 24;
$columns = "(player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, player11, player12, player13, player14, player15, player16, player17, player18, player19, player20, player21, player22, player23, player24)";
break;
default:
$players = 0;
}
}

//Start if statement
if ($players !== 0) {
//Start form
echo '<form id="form2" name="form2" method="post" action="">';
echo 'UNC<br /><br />';

// use loop to generate form
    for ($i=0;$i<$players;$i++) {
if (($players/2)==$i) {
echo '<br /><br />Opponent<br />Player:<input type="text" name=player[] size="35" maxlength="35" /><br />';

} else {
      echo 'Player:<input type="text" name=player[] size="35" maxlength="35" /><br />';
}
    }
echo '<input type="submit" name="submit2" value="Next" />';
echo '</form>';

}

// Get form data
    if (isset($_POST['submit2'])) {
foreach ($_POST['player'] as $key => $value) {
$values .= " $value,";
}

// Insert data into database
$query = "INSERT INTO matchreports (".$columns.") VALUES(".$values.")";
$result = mysql_query($query) or die("Problem with the query: $query on line:" . __LINE__ . "<br>" . mysql_error());
if ($result) { // If it ran OK.
// Confirmation.
echo '<p><b>A new match report has been added!</b></p>';
exit(); // Quit the script.
} else { // If it did not run OK.
$message = '<p>The category couldn\'t be added. If the problem persists please e-mail the administrator.</p><p>' .
mysql_error()
. '</p>';
}
mysql_close();
}

}
NumberOfPlayers();
?>[/code]
Link to comment
https://forums.phpfreaks.com/topic/25692-increasing-variable-scope/
Share on other sites

I know it can probably be done easier but hey i am still learning php and yeah my code is still a work in progress... to make it simpler...

[code]function {
        case statement {
              $columns
        }
        if {
        loop to generate form
        }
        if (submit) {
        where $columns is needed
        }
}
[/code]

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.