From: Steve Sutton Date: Wed, 28 Jun 2017 19:22:59 +0000 (-0400) Subject: First Files X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;ds=sidebyside;p=prog%2FExportMemberCSV.git First Files --- f84f89873c0bcd0d968d84a29fcf68b127a3f009 diff --git a/exportCSV.php b/exportCSV.php new file mode 100644 index 0000000..f526e1d --- /dev/null +++ b/exportCSV.php @@ -0,0 +1,202 @@ +query( $sql ); +$memberData = $stmt->fetchAll( PDO::FETCH_ASSOC ); +echo '
$memberData: ' . print_r( $memberData, true ) . '
'; + +$fileHeader = array( + 'id', 'member_name', 'status', 'descr', + 'addr1', 'addr2', 'city', 'state', 'country', 'zip', + 'mailing_addr1', 'mailing_addr2', 'mailing_city', 'mailing_state', 'mailing_zip', + 'region', 'county', 'lat', 'lon', 'phone', 'toll_free', + 'url', 'reservation_url', 'email', 'logo', 'categories', 'amenities'); +// Setup prepare statement for state abb +$statePrepare = " +SELECT state_abb + FROM members.state + WHERE state_id = :state_id"; +$getState = $dbh->prepare( $statePrepare ); +// Setup prepare statement for member categories +$memberCatPrepare = " +SELECT category_id + FROM members.member_category + WHERE member_id = :member_id"; +$getCategories = $dbh->prepare( $memberCatPrepare ); +// Setup prepare statement for member amenities +$memberAmmPrepare = " +SELECT amenity_id + FROM members.member_amenity + WHERE member_id = :member_id"; +$getAmenities = $dbh->prepare( $memberAmmPrepare ); +// create file +$fp = fopen( $memberFileName, 'w' ); +if ( $fp ) { + // create file header + fputcsv( $fp, $fileHeader ); + foreach ( $memberData as $member ) { + $memberCategories = array(); + $getCategories->bindParam( ':member_id', $member['member_id'], PDO::PARAM_INT ); + $getCategories->execute(); + while ( $memCat = $getCategories->fetch( PDO::FETCH_ASSOC ) ) { + $memberCategories[] = $memCat['category_id']; + } + $member['categories'] = implode( ',', $memberCategories ); + $memberAmenities = array(); + $getAmenities->bindParam( ':member_id', $member['member_id'], PDO::PARAM_INT ); + $getAmenities->execute(); + while ( $memAmm = $getAmenities->fetch( PDO::FETCH_ASSOC ) ) { + $memberAmenities[] = $memAmm['amenity_id']; + } + $member['amenities'] = implode( ',', $memberAmenities ); + if ( $member['state'] ) { + // get state abbr + $getState->bindParam( ':state_id', $member['state'] ); + $getState->execute(); + $member['state'] = $getState->fetchColumn(); + } + if ( $member['mailing_state'] ) { + // get mailing state abbr + $getState->bindParam( ':state_id', $member['mailing_state'], PDO::PARAM_INT ); + $getState->execute(); + $member['mailing_state'] = $getState->fetchColumn(); + } + fputcsv( $fp, $member ); + } + fclose( $fp ); +} + +// get the cities +$sql = " + SELECT city_id as id, city_name as name + FROM members.city +ORDER BY city_id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'id', 'name' ); +$fp = fopen( $cityFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + fputcsv( $fp, $row ); + } + fclose( $fp ); +} +// get the counties +$sql = " + SELECT county_id as id, county_name as name + FROM members.county +ORDER BY county_id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'id', 'name' ); +$fp = fopen( $countyFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + fputcsv( $fp, $row ); + } + fclose( $fp ); +} + +// get the regions +$sql = " + SELECT region_id as id, region_name as name + FROM members.region +ORDER BY region_id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'id', 'name' ); +$fp = fopen( $regionFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + fputcsv( $fp, $row ); + } + fclose( $fp ); +} + +// get the amenities +$sql = " + SELECT amenity_id as id, amenity_name as name + FROM members.amenity +ORDER BY amenity_id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'id', 'name' ); +$fp = fopen( $amenityFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + fputcsv( $fp, $row ); + } + fclose( $fp ); +} + +// get the categories +$sql = " + SELECT category_id as id, name, parent_id as parent + FROM members.category +ORDER BY category_id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'id', 'name', 'parent' ); +$fp = fopen( $categoryFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + fputcsv( $fp, $row ); + } + fclose( $fp ); +} + +// get the member photos +$sql = " + SELECT member_id, image,caption + FROM members.member_photos +ORDER BY member_id,pos"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'member_id', 'image', 'caption' ); +$fp = fopen( $photosFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + if ( $row['image'] ) { + $row['image'] = CKIMAGE . $row['image']; + } + fputcsv( $fp, $row ); + } + fclose( $fp ); +} + +// get the member files +$sql = " + SELECT member_id, name_on_disk as file_url, file_name + FROM members.member_files +ORDER BY member_id,id"; +$data = $dbh->query( $sql )->fetchAll( PDO::FETCH_ASSOC ); +$fileHeader = array( 'member_id', 'file_url', 'file_name' ); +$fp = fopen( $filesFileName, 'w' ); +if ( $fp ) { + fputcsv( $fp, $fileHeader ); + foreach ( $data as $row ) { + if ( $row['file_url'] ) { + $row['file_url'] = ORIGINAL . $row['file_url']; + } + fputcsv( $fp, $row ); + } + fclose( $fp ); +} diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..770cfe6 --- /dev/null +++ b/readme.md @@ -0,0 +1,7 @@ +# Gaslight Media Member Export to CSV files + +* Clone the directory into the main level of the site. +* Run the file in the web browser + +## This will generate export files for importing into the new GLM Associate plugin. +