On 8/16/06, David Tulloh <[EMAIL PROTECTED]> wrote:
Chris G wrote:
foreach ($user_input_array as $user_input) {
$data_member = array(); # Create an empty array
Do SQL query stuff
foreach ($sql_results as $sql_member) {
$data_member[] = $sql_member;
}
$data[] = $data_member;
}
You can now do your function call as
$gbarplot = new GroupBarPlot($data);
The downside to this approach is that you'll end up making a SQL call
for each value in the array. An alternative would be to build a
comma-delimited string of values and use SQL's IN() check. Example:
[code]
// CAUTION: Validate your data to protect from SQL Injection, like David says!
// Assuming you've done this, $per_ids_array contains valid/clean/safe data
// that was originally submitted through $_GET['per_id'].
// Let's turn that array into a comma-delimited string using implode()
$per_ids_string = implode(',', $per_ids_array);
// Now plug the string into our SQL query:
$query = 'SELECT rep_l_per_id, rep_value_perc FROM report_values WHERE
rep_l_per_id IN (' . $per_ids . ') ORDER BY rep_l_per_id ASC';
// execute
$result = mysql_query($query) or die (mysql_error());
// Before looping through our result set, initialize two variables:
$gbp_data = array(); // this will be the final array to be passed
to GroupBarPlot()
$temp_id = NULL; // use this to determine the result set has moved
to a new rep_|_per_id
while($line = mysql_fetch_array($result)) {
// IF $temp_id does not match the current rep_|_per_id,
// create a new element of $gbp_data as an array.
// Also, set $temp_id to this rep_|_per_id value to use in the
next iteration.
if ($temp_id != $line['rep_|_per_id']) {
$temp_id = $line['rep_|_per_id'];
$gbp_data[$temp_id] = array();
}
// Add rep_value_perc as an array element
$gbp_data[$temp_id][] = $line['rep_value_perc'];
}
// Now pass to your function:
$gbarplot = new GroupBarPlot($gbp_data);
[/code]
It's all untested, but I *think* will work out of the box.
And now a bit of bonus advice. The SQL query that you provided earlier
has a giant SQL injection attack problem. I'd recomend reading a little
about SQL injection attacks and getting it patched up.
Yeah, this cannot be stressed enough!!!
HTH,
John W
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php