- Previous thread: [PHP] Does anyone know how gettext works under the hood?
- Next thread: [PHP] Removing empty values from array
- Threads sorted by date: php 200906
You'd be much, much better off creating a query by concatenating ",
($uid, $groups[$i])" into one huge insert query.
YOU SHOULD NEVER, EVER EVER EVER EVER RUN QUERIES IN A LOOP!
On Thu, Jun 25, 2009 at 4:11 PM, Matt Giddings wrote:
> Thanks for taking the time to provide an example. =C2=A0I'm going to take=
the
> advice given by you and others and simply do this in php instead of looki=
ng
> for a fancy mysql solution. =C2=A0; ) =C2=A0Dang, and I was really wantin=
g to wow
> myself today...
> Thanks again!
> Matt
>
> On Thu, Jun 25, 2009 at 3:51 PM, Ashley Sheridan
> wrote:
>
>> On Thu, 2009-06-25 at 15:20 -0400, Matt Giddings wrote:
>> > I know this is the off topic (sorry), but it is a php project that I'm
>> > working on! =C2=A0I need some pointers on how to pivot a mysql column
>> (containing
>> > comma delimited data) into an equal number of rows (see example). =C2=
=A0Any
>> > direction (pointers to links, etc. would be appreciated).
>> >
>> > From this:
>> >
>> > user.table
>> > uid|name|groups
>> > 1|mcgiddin|1,4,7,10,12
>> >
>> >
>> > To this:
>> >
>> > pivot.table
>> > uid|group
>> > 1|1
>> > 1|4
>> > 1|7
>> > 1|10
>> > 1|12
>>
>> I don't know of any fancy ways of doing it just in MySQL, but if the
>> records are all as simple as that, something like this should do the
>> trick:
>>
>> $query =3D "SELECT * FROM `user`";
>> $result =3D mysql_query($query);
>> while($row =3D mysql_fetch_array($result))
>> {
>> =C2=A0 =C2=A0$uid =3D $row['uid'];
>> =C2=A0 =C2=A0$groups =3D explode(','$row['groups']);
>> =C2=A0 =C2=A0for($i=3D0; $i> =C2=A0 =C2=A0{
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0$query2 =3D "INSERT INTO `pivot` VALUES($uid,=
$groups[$i])";
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0$result2 =3D mysql_query($query2);
>> =C2=A0 =C2=A0}
>> }
>>
>> Also, I'd recommend having some sort of auto increment value on that
>> pivot table, so you can manipulate specific rows at a later date.
>>
>> Thanks
>> Ash
>> www.ashleysheridan.co.uk
>>
>>
>
>
> --
> Matt Giddings
> Web Programmer
> Information Technology Services
> Saginaw Valley State University
> Phone: 989.964.7247
>
> http://www.svsu.edu
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
($uid, $groups[$i])" into one huge insert query.
YOU SHOULD NEVER, EVER EVER EVER EVER RUN QUERIES IN A LOOP!
On Thu, Jun 25, 2009 at 4:11 PM, Matt Giddings wrote:
> Thanks for taking the time to provide an example. =C2=A0I'm going to take=
the
> advice given by you and others and simply do this in php instead of looki=
ng
> for a fancy mysql solution. =C2=A0; ) =C2=A0Dang, and I was really wantin=
g to wow
> myself today...
> Thanks again!
> Matt
>
> On Thu, Jun 25, 2009 at 3:51 PM, Ashley Sheridan
> wrote:
>
>> On Thu, 2009-06-25 at 15:20 -0400, Matt Giddings wrote:
>> > I know this is the off topic (sorry), but it is a php project that I'm
>> > working on! =C2=A0I need some pointers on how to pivot a mysql column
>> (containing
>> > comma delimited data) into an equal number of rows (see example). =C2=
=A0Any
>> > direction (pointers to links, etc. would be appreciated).
>> >
>> > From this:
>> >
>> > user.table
>> > uid|name|groups
>> > 1|mcgiddin|1,4,7,10,12
>> >
>> >
>> > To this:
>> >
>> > pivot.table
>> > uid|group
>> > 1|1
>> > 1|4
>> > 1|7
>> > 1|10
>> > 1|12
>>
>> I don't know of any fancy ways of doing it just in MySQL, but if the
>> records are all as simple as that, something like this should do the
>> trick:
>>
>> $query =3D "SELECT * FROM `user`";
>> $result =3D mysql_query($query);
>> while($row =3D mysql_fetch_array($result))
>> {
>> =C2=A0 =C2=A0$uid =3D $row['uid'];
>> =C2=A0 =C2=A0$groups =3D explode(','$row['groups']);
>> =C2=A0 =C2=A0for($i=3D0; $i> =C2=A0 =C2=A0{
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0$query2 =3D "INSERT INTO `pivot` VALUES($uid,=
$groups[$i])";
>> =C2=A0 =C2=A0 =C2=A0 =C2=A0$result2 =3D mysql_query($query2);
>> =C2=A0 =C2=A0}
>> }
>>
>> Also, I'd recommend having some sort of auto increment value on that
>> pivot table, so you can manipulate specific rows at a later date.
>>
>> Thanks
>> Ash
>> www.ashleysheridan.co.uk
>>
>>
>
>
> --
> Matt Giddings
> Web Programmer
> Information Technology Services
> Saginaw Valley State University
> Phone: 989.964.7247
>
> http://www.svsu.edu
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Conversations: [PHP] OT mysql pivot table problem
- [PHP] OT mysql pivot table problem by Matt Giddings on 2009-06-25T19:31:45+00:00
- Re: [PHP] OT mysql pivot table problem by Ashley Sheridan on 2009-06-25T19:52:56+00:00
- Re: [PHP] OT mysql pivot table problem by Matt Giddings on 2009-06-25T20:12:45+00:00
- Re: [PHP] OT mysql pivot table problem by Eddie Drapkin on 2009-06-25T20:18:50+00:00
- Re: [PHP] OT mysql pivot table problem by Andrew Ballard on 2009-06-25T20:24:02+00:00
- Re: [PHP] OT mysql pivot table problem by Ashley Sheridan on 2009-06-25T20:25:29+00:00
- Re: [PHP] OT mysql pivot table problem by Andrew Ballard on 2009-06-25T21:15:52+00:00
- Re: [PHP] OT mysql pivot table problem by Matt Giddings on 2009-06-26T14:59:00+00:00
- Re: [PHP] OT mysql pivot table problem by Shawn McKenzie on 2009-06-26T15:11:07+00:00
Related Threads
- Re: lpd printing - openbsd
- grails-user - dependency injection in domain classes in integration tests - grails
- Admin (when saving): manipulating a parent field based on an inline object's field - django
- desktop-discuss - firefox 3.6.3 contributed builds for Solaris 10 - opensolaris
- OT: Burleson in Trouble? - oracle
- test - please ignore - mysql
- Wine - Re: Solved - BetFair Poker with Wine 1.1.13 and Ubuntu 8.10 - wine
- grails-user - shiro src dependencies in sts - grails
- xml - Should passing XML_PARSE_NOWARNING to the xinclude processor suppress XPointer evaluation failed messages? - libxml
- Bug#583086: ITP: libcatalyst-plugin-unicode-encoding-perl -- Unicode-aware Catalyst plugin - debian
- pkg-discuss - Added tag in140 for changeset 3815c42300a6 - opensolaris
- jira - Created: (AMQ-2752) Message is delivered to DLQ in store and forward mode if two brokers clock is not in sync - activemq