Page 1 of 1

Array confusion....

Posted: Thu Aug 02, 2007 3:28 am
by ghadacr
I got this array which different names such as title, surname and so on......

Code: Select all

echo"  <tr>
	 
      <td><strong>Title:</strong></td>
      <td><select name=title[]>
	  	 <option value=></option>
          <option value=Mr>Mr</option>
          <option value=Mrs>Mrs</option>
          <option value=Ms>Ms</option>
          <option value=Master>Master</option>
        </select></td>
    </tr>
    <tr> 
      <td><strong>First name:</strong></td>
      <td><input type=text name=firstname[]></td>
    </tr>
    <tr> 
      <td height=32><strong>Surname:</strong></td>
      <td><input type=text name=surname[]></td>
    </tr>
    <tr> 
      <td><strong>Child/Adult:</strong></td>
      <td><select name=ChildAdult[]>
	  	  <option value=></option>
          <option value=1>Child</option>
          <option value=2>Adult</option>
        </select></td>
    </tr>
    <tr> 
      <td><strong>Cost:</strong></td>
      <td><input type=text name=cost[]></td>
    </tr>
    <tr> 
      <td width=17><strong>Notes:</strong></td>
      <td width=83><textarea name=notes[]></textarea></td>
	 </tr>
	 <tr>
	 <td></td></tr>"
	;

	$numofpass = $numofpass-1;
	
	
}
	?>
Basically i'm not sure how to process it in this page(I have setup a for each loop, but this is where i get confused) Help please...

Code: Select all

<?PHP include 'opendb.php'; ?>

<?PHP include 'header.php'; ?>

<?php 

$title   = $_GET['title'];
$firstname  = $_GET['firstname'];
$surname  = $_GET['surname'];
$ChildAdult  = $_GET['ChildAdult'];
$cost  = $_GET['cost'];
$notes  = $_GET['notes'];
$FlightID  = $_GET['FlightID'];
$ClientDetailID  = $_GET['ClientDetailID'];

foreach() 
  { 
//----Query 5------
$query = mssql_init ("sp_insertFlightSpaces"); 

mssql_bind($query, "@FlightID", $FlightID, SQLVARCHAR);

mssql_bind($query, "@ChildOrAdult", $UserNames, SQLVARCHAR);

mssql_bind($query, "@ClientDetailID", $ClientDetailID, SQLINT2);

mssql_bind($query, "@cost", $forename, SQLVARCHAR);

mssql_bind($query, "@notes", $forename, SQLVARCHAR);

mssql_bind($query, "@Title", $forename, SQLVARCHAR);

mssql_bind($query, "@FirstName", $forename, SQLVARCHAR);

mssql_bind($query, "@Surname", $forename, SQLVARCHAR);


if (($result = mssql_execute($query)) === false) 
{ 
    die('Could not execute the query query 2(Insert client)'); 
} 

///--------------------------------------------


	}

	
						
	
mssql_close()

?>
<?PHP include 'footer.php'; ?>

Posted: Thu Aug 02, 2007 3:56 am
by Gente
You can add a new array with following format

Code: Select all

$data = array(
  'field1' => array ( 'varname', SQLVARCHAR),
  'field2' => array ( 'varname', SQLINT2),
  ...
);
After this make foreach on $_GET and if the variable present in this array process it.

Posted: Thu Aug 02, 2007 5:06 am
by ghadacr
I changed it your way:

Code: Select all

//----Query 5------
$query = mssql_init ("sp_insertFlightSpaces"); 
$data = array( 
mssql_bind($query, "@FlightID", $FlightID, SQLVARCHAR));

 'ChildAdult' => array (mssql_bind($query, "@ChildOrAdult", $ChildAdult, SQLVARCHAR));

mssql_bind($query, "@ClientDetailID", $ClientDetailID, SQLINT2)};

 'cost' => array (mssql_bind($query, "@cost", $cost, SQLVARCHAR));

 'notes' => array (mssql_bind($query, "@notes", $notes, SQLVARCHAR));

 'title' => array (mssql_bind($query, "@Title", $title, SQLVARCHAR));

 'firstname' => array (mssql_bind($query, "@FirstName", $firstname, SQLVARCHAR));

 'surname' => array (mssql_bind($query, "@Surname", $surname, SQLVARCHAR));
};

if (($result = mssql_execute($query)) === false) 
{ 
    die('Could not execute the query query 2(Insert client)'); 
} 

///--------------------------------------------


	}
And i get the following error:
Parse error: syntax error, unexpected T_DOUBLE_ARROW in C:conflight.php on line 22
Line 22 is:

Code: Select all

'ChildAdult' => array (mssql_bind($query, "@ChildOrAdult", $ChildAdult, SQLVARCHAR));

Posted: Thu Aug 02, 2007 7:43 am
by Gente
Hmm... I mean absolutely another thing.
Actually I don't looked detailed what you trying to do, because you just asked to help you organize your code.
Here is my idea, and no ready solution.
Ok. A little more detailed

Code: Select all

$data = array(
  'field1' => array ( 'varname', SQLVARCHAR),
  'field2' => array ( 'varname', SQLINT2),
  ...
);
.....
foreach ($_GET as $index => $key)
{
  if (isset($data[$index]))
  {
    // You function with $data[$index][0] and $data[$index][1] parametres
  }
}