Re: [PHP] creating an xls file from mysql data
[email protected] (Richard Kurth)
| Newsgroups | php.general |
|---|---|
| Message-ID | <[email protected]> |
Chris wrote:
> Richard Kurth wrote:
>
>> This script will create an xls file from the data that is sent to it
>> When I run this it only gets one recored and it is supposet to get all
>> the records that are past by the $_POST[selectedcontactlist]
>> I think I have a } in the wrong place but I can not figure it out
>> anybody have a suggestion
>>
>> $_POST[selectedcontactlist]="3,45,65,23,12,4,56"; //this is a sample of
>> what is past
>>
>> $ExplodeIt = explode(",",rtrim($_POST[selectedcontactlist],","));
>> $Count = count($ExplodeIt);
>> for ($i=0; $i < $Count; $i++) {
>> $sql = "SELECT * FROM contacts WHERE id = '$ExplodeIt[$i]'";
>>
>
> Instead of doing that, do this:
>
> /**
> * This section makes sure the id's you are going to use in your query
> are actually integer id's.
> * If they aren't, you'll get an sql error.
> *
> */
> $ids = array();
> foreach ($_POST['selectedcontactlist'] as $id) {
> if (!is_int($id)) {
> continue;
> }
> $ids[] = $id;
> }
>
> // all posted values are duds? show an error.
> if (empty($ids)) {
> echo "No id's are numeric, try again";
> exit;
> }
>
> $sql = "select * from contacts where id in (" . implode(',', $ids) . ")";
>
>
> That'll get everything for all of those id's and then you can loop over
> it all once:
>
> // print out the header for the csv file here.
>
> // then loop over the results:
> while ($row = mysql_fetch_assoc($sql_result)) {
> // put it into file here.
> }
>
> // close the file
> // print it out.
>
>
This is what the $_POST['selectedcontactlist'] looks like
121,17,97,123,243,52,138,114,172,170,64,49,60,256,176,244,201,42,95,4,
it is not coming across as an array so the foreach is throwing an error
how can I make this an array in the proper format.
This number are selected in a checkbox and passed with a javascript to the script should I be converting them to an array in the javascript.
this is the javascript that is passing the numbers.
function exportContacts(theform)
{
//theform.action = "cmexport.php";
theform.action="cmexport.php";
if (getSelectedContacts(theform) != "")
{
theform.submit();
}
else
{
alert("Please select contacts to export by checking the boxes to the left of the contact's name.");
}
}