Re: [PHP] Re: MySQL ORDER BY or PHP Sort? Oops.
You know, in spite of all the good advice I've received, I think that's what I'll have to do. I say "have to" because inserting another field into the table creates some complications (long story... related to the web admin tool I made for editing the tables). Actually, come to think of it, there is an existing field that I could reuse for this purpose. Yes, that will work! Thanks everyone! ...Rene On Monday, December 3, 2001, at 06:49 PM, Martin Towell wrote: > can you have another field in your table(s) for a "weighting" and then > sort > on that? > > otherwise you'll have to use php > > -Original Message- > From: René Fournier [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, December 04, 2001 12:16 PM > To: Benjamin Pflugmann; [EMAIL PROTECTED]; [EMAIL PROTECTED] > Subject: [PHP] Re: MySQL ORDER BY or PHP Sort? Oops. > > > From: René Fournier <[EMAIL PROTECTED]> > Date: Mon Dec 03, 2001 06:11:23 PM US/Mountain > To: Benjamin Pflugmann <[EMAIL PROTECTED]> > Cc: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > Subject: Re: MySQL ORDER BY or PHP Sort? Oops. > > Here is the snippet of code that is presenting a challenge: > > --- > > // FETCH MODELS TECH SPECS > > function models ($lang,$db) { > $modelsheader = mysql_fetch_array(mysql_query("SELECT * FROM models > WHERE lang='$lang' AND key1='header'",$db)); > $result = mysql_query("SELECT * FROM models WHERE key1='data' ORDER > BY price ASC",$db); > mysql_close(); > include ('../common/models.inc'); > } > > models($lang,$db); > > // CREATE A MULTI-DIMENSIONAL MODELS ARRAYS BASED ON THE NUMBER OF MODEL > ROWS IN THE TABLE > > $i = 0; > do { > $allmodels[$i] = $models; > $i++; > } while ($models = mysql_fetch_array($result)); > > // NUMBER OF MODELS > > $first = 1; > $last = sizeof($allmodels)-1; > $colspan = ($last * 2)+1; > > ?> > --- > The problem is, if I sort by the price field, the ordering of the series > gets mixed up (since low-end models in higher-end series cost more than > some higher-end models in lower-end series (confused?? I am :-) If I > just sort by series, I don't get the prices in order within each series > (big problem). And if I sort by BOTH series and price, which is the > logical thing to do, and which many people have kindly suggested (and > which I have tried), well, it doesn't work, because the series must be > sorted in a non-alphabetical way. > > I've looked at PHP's myriad sorting functions, and well--maybe I need > more sun (I live in Canada... winter...)--I can't see a 'simple' way to > do a non-numerical, non-alphabetical (user-defined?) sort on the Series > fields, then subsort each series by price. > > Many thanks for all the help, fellas. > > ...Rene > > On Monday, December 3, 2001, at 05:31 PM, Benjamin Pflugmann wrote: > > Hi. > > Because you said, Rene, that you already know how to sort according to > one of both criteria, I presume ordering the series column is not the > problem (e.g. because it is an enum or something alike). > > Then the solution would simply be to do something like > > SELECT * FROM my_table WHERE ... ORDER BY series, price > > I.e. simply list the order criteria which work seperately in the ORDER > BY clause. If this is not appliable, please elaborate. > > Btw, it is *much* easier to help if you had quoted a (partial) working > query (which include table and column names and so on). Also, how the > series are stored would have been of interest, because this will > influence how the ordering is specified. > > Also, I do not understand why you put emphasis on the fact that the > series is sorted in an unusual way if you later say that you already > know how to order by it?! Is this relevant to the problem at all? > > Bye, > > Benjamin. > > > On Tue, Dec 04, 2001 at 12:36:34AM +0200, [EMAIL PROTECTED] wrote: > >Well I think mysql doesnt allow you to do this that simple as mysql > doesnt know how you want to sort it exactly. So my suggestion would be > to > give a value to each series, eg. Baby = 1, > Genesis=2,Super=3,Predator=4,Millennium=5 and then order by series. > > Cheers > Siim Einfeldt > > One more thing, very important: I want to specify the Series sort order, > not alphabetically, but by a non-obvious way > (Baby>Genesis>Super>Predator>Millennium)... > > -- > > I want to select about 25 rows from a table, and sort them by
RE: [PHP] Re: MySQL ORDER BY or PHP Sort? Oops.
can you have another field in your table(s) for a "weighting" and then sort on that? otherwise you'll have to use php -Original Message- From: René Fournier [mailto:[EMAIL PROTECTED]] Sent: Tuesday, December 04, 2001 12:16 PM To: Benjamin Pflugmann; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: [PHP] Re: MySQL ORDER BY or PHP Sort? Oops. From: René Fournier <[EMAIL PROTECTED]> Date: Mon Dec 03, 2001 06:11:23 PM US/Mountain To: Benjamin Pflugmann <[EMAIL PROTECTED]> Cc: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> Subject: Re: MySQL ORDER BY or PHP Sort? Oops. Here is the snippet of code that is presenting a challenge: --- --- The problem is, if I sort by the price field, the ordering of the series gets mixed up (since low-end models in higher-end series cost more than some higher-end models in lower-end series (confused?? I am :-) If I just sort by series, I don't get the prices in order within each series (big problem). And if I sort by BOTH series and price, which is the logical thing to do, and which many people have kindly suggested (and which I have tried), well, it doesn't work, because the series must be sorted in a non-alphabetical way. I've looked at PHP's myriad sorting functions, and well--maybe I need more sun (I live in Canada... winter...)--I can't see a 'simple' way to do a non-numerical, non-alphabetical (user-defined?) sort on the Series fields, then subsort each series by price. Many thanks for all the help, fellas. ...Rene On Monday, December 3, 2001, at 05:31 PM, Benjamin Pflugmann wrote: Hi. Because you said, Rene, that you already know how to sort according to one of both criteria, I presume ordering the series column is not the problem (e.g. because it is an enum or something alike). Then the solution would simply be to do something like SELECT * FROM my_table WHERE ... ORDER BY series, price I.e. simply list the order criteria which work seperately in the ORDER BY clause. If this is not appliable, please elaborate. Btw, it is *much* easier to help if you had quoted a (partial) working query (which include table and column names and so on). Also, how the series are stored would have been of interest, because this will influence how the ordering is specified. Also, I do not understand why you put emphasis on the fact that the series is sorted in an unusual way if you later say that you already know how to order by it?! Is this relevant to the problem at all? Bye, Benjamin. On Tue, Dec 04, 2001 at 12:36:34AM +0200, [EMAIL PROTECTED] wrote: Well I think mysql doesnt allow you to do this that simple as mysql doesnt know how you want to sort it exactly. So my suggestion would be to give a value to each series, eg. Baby = 1, Genesis=2,Super=3,Predator=4,Millennium=5 and then order by series. Cheers Siim Einfeldt One more thing, very important: I want to specify the Series sort order, not alphabetically, but by a non-obvious way (Baby>Genesis>Super>Predator>Millennium)... -- I want to select about 25 rows from a table, and sort them by two criteria. First, by each row's Series field ("Baby", "Genesis", "Super", "Predator", "Millennium" are the various Series, and the order I'd like the rows in the array). Within each Series, I'd like the rows sorted by their Price field, ascending. For example: Baby $5 Baby $10 Baby $15 Genesis $20 Genesis $35 Genesis $50 ...and so on. Now, I know how to structure my MySQL Select statment such that the rows it pulls from the table will be either sorted by Price OR by Series, but not both, in the way I'd like. Does anyone know if it's possibly to do this in the Select statement itself? (I'd rather do it that way, than resort in PHP.) Thanks! ...Rene [...] -- [EMAIL PROTECTED] - Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --- René Fournier [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Re: MySQL ORDER BY or PHP Sort? Oops.
On Tue, 4 Dec 2001 11:46, René Fournier wrote: > From: René Fournier <[EMAIL PROTECTED]> > Date: Mon Dec 03, 2001 06:11:23 PM US/Mountain > To: Benjamin Pflugmann <[EMAIL PROTECTED]> > Cc: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> > Subject: Re: MySQL ORDER BY or PHP Sort? Oops. > > Here is the snippet of code that is presenting a challenge: > > --- > > // FETCH MODELS TECH SPECS > > function models ($lang,$db) { > $modelsheader = mysql_fetch_array(mysql_query("SELECT * FROM models > WHERE lang='$lang' AND key1='header'",$db)); > $result = mysql_query("SELECT * FROM models WHERE key1='data' ORDER > BY price ASC",$db); > mysql_close(); > include ('../common/models.inc'); > } > > models($lang,$db); > > // CREATE A MULTI-DIMENSIONAL MODELS ARRAYS BASED ON THE NUMBER OF > MODEL ROWS IN THE TABLE > > $i = 0; > do { > $allmodels[$i] = $models; > $i++; > } while ($models = mysql_fetch_array($result)); > > // NUMBER OF MODELS > > $first = 1; > $last = sizeof($allmodels)-1; > $colspan = ($last * 2)+1; > > ?> > --- > The problem is, if I sort by the price field, the ordering of the > series gets mixed up (since low-end models in higher-end series cost > more than some higher-end models in lower-end series (confused?? I am > :-) If I just sort by series, I don't get the prices in order within > each series (big problem). And if I sort by BOTH series and price, > which is the logical thing to do, and which many people have kindly > suggested (and which I have tried), well, it doesn't work, because the > series must be sorted in a non-alphabetical way. If you make the series field an enum type, it will sort in the order in which the values are inserted Put them in the order Baby>Genesis>Super>Predator>Millennium and that's how they'll come out. -- David Robley Techno-JoaT, Web Maintainer, Mail List Admin, etc CENTRE FOR INJURY STUDIES Flinders University, SOUTH AUSTRALIA We now return you to your regularly scheduled flame-throwing -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP] Re: MySQL ORDER BY or PHP Sort? Oops.
From: René Fournier <[EMAIL PROTECTED]> Date: Mon Dec 03, 2001 06:11:23 PM US/Mountain To: Benjamin Pflugmann <[EMAIL PROTECTED]> Cc: "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> Subject: Re: MySQL ORDER BY or PHP Sort? Oops. Here is the snippet of code that is presenting a challenge: --- --- The problem is, if I sort by the price field, the ordering of the series gets mixed up (since low-end models in higher-end series cost more than some higher-end models in lower-end series (confused?? I am :-) If I just sort by series, I don't get the prices in order within each series (big problem). And if I sort by BOTH series and price, which is the logical thing to do, and which many people have kindly suggested (and which I have tried), well, it doesn't work, because the series must be sorted in a non-alphabetical way. I've looked at PHP's myriad sorting functions, and well--maybe I need more sun (I live in Canada... winter...)--I can't see a 'simple' way to do a non-numerical, non-alphabetical (user-defined?) sort on the Series fields, then subsort each series by price. Many thanks for all the help, fellas. ...Rene On Monday, December 3, 2001, at 05:31 PM, Benjamin Pflugmann wrote: Hi. Because you said, Rene, that you already know how to sort according to one of both criteria, I presume ordering the series column is not the problem (e.g. because it is an enum or something alike). Then the solution would simply be to do something like SELECT * FROM my_table WHERE ... ORDER BY series, price I.e. simply list the order criteria which work seperately in the ORDER BY clause. If this is not appliable, please elaborate. Btw, it is *much* easier to help if you had quoted a (partial) working query (which include table and column names and so on). Also, how the series are stored would have been of interest, because this will influence how the ordering is specified. Also, I do not understand why you put emphasis on the fact that the series is sorted in an unusual way if you later say that you already know how to order by it?! Is this relevant to the problem at all? Bye, Benjamin. On Tue, Dec 04, 2001 at 12:36:34AM +0200, [EMAIL PROTECTED] wrote: Well I think mysql doesnt allow you to do this that simple as mysql doesnt know how you want to sort it exactly. So my suggestion would be to give a value to each series, eg. Baby = 1, Genesis=2,Super=3,Predator=4,Millennium=5 and then order by series. Cheers Siim Einfeldt One more thing, very important: I want to specify the Series sort order, not alphabetically, but by a non-obvious way (Baby>Genesis>Super>Predator>Millennium)... -- I want to select about 25 rows from a table, and sort them by two criteria. First, by each row's Series field ("Baby", "Genesis", "Super", "Predator", "Millennium" are the various Series, and the order I'd like the rows in the array). Within each Series, I'd like the rows sorted by their Price field, ascending. For example: Baby $5 Baby $10 Baby $15 Genesis $20 Genesis $35 Genesis $50 ...and so on. Now, I know how to structure my MySQL Select statment such that the rows it pulls from the table will be either sorted by Price OR by Series, but not both, in the way I'd like. Does anyone know if it's possibly to do this in the Select statement itself? (I'd rather do it that way, than resort in PHP.) Thanks! ...Rene [...] -- [EMAIL PROTECTED] - Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php --- René Fournier [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] RE: MySQL ORDER BY or PHP Sort?
Don't forget LIMIT 0,25 ("I want to select about 25 rows from a table...") SELECT * FROM mytable ORDER BY series,price LIMIT 0,25 Mike Rick Emery wrote: >SELECT * FROM mytable ORDER BY series,price; > > >-Original Message- >From: René Fournier [mailto:[EMAIL PROTECTED]] >Sent: Monday, December 03, 2001 4:27 PM >To: [EMAIL PROTECTED] >Subject: MySQL ORDER BY or PHP Sort? > > >I want to select about 25 rows from a table, and sort them by two >criteria. First, by each row's Series field ("Baby", "Genesis", "Super", >"Predator", "Millennium" are the various Series, and the order I'd like >the rows in the array). Within each Series, I'd like the rows sorted by >their Price field, ascending. For example: > >Baby $5 >Baby $10 >Baby $15 >Genesis $20 >Genesis $35 >Genesis $50 > >...and so on. > >Now, I know how to structure my MySQL Select statment such that the rows >it pulls from the table will be either sorted by Price OR by Series, but >not both, in the way I'd like. Does anyone know if it's possibly to do >this in the Select statement itself? (I'd rather do it that way, than >resort in PHP.) > >Thanks! > >...Rene > >--- >René Fournier >[EMAIL PROTECTED] > > >- >Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > >To request this thread, e-mail <[EMAIL PROTECTED]> >To unsubscribe, e-mail <[EMAIL PROTECTED]> >Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
[PHP] RE: MySQL ORDER BY or PHP Sort?
SELECT * FROM mytable ORDER BY series,price; -Original Message- From: René Fournier [mailto:[EMAIL PROTECTED]] Sent: Monday, December 03, 2001 4:27 PM To: [EMAIL PROTECTED] Subject: MySQL ORDER BY or PHP Sort? I want to select about 25 rows from a table, and sort them by two criteria. First, by each row's Series field ("Baby", "Genesis", "Super", "Predator", "Millennium" are the various Series, and the order I'd like the rows in the array). Within each Series, I'd like the rows sorted by their Price field, ascending. For example: Baby $5 Baby $10 Baby $15 Genesis $20 Genesis $35 Genesis $50 ...and so on. Now, I know how to structure my MySQL Select statment such that the rows it pulls from the table will be either sorted by Price OR by Series, but not both, in the way I'd like. Does anyone know if it's possibly to do this in the Select statement itself? (I'd rather do it that way, than resort in PHP.) Thanks! ...Rene --- René Fournier [EMAIL PROTECTED] - Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]