Computer Webmaster Gaming Console Graphics Forum

Welcome to the Computer Webmaster Gaming Console Graphics Forum forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact contact us.

MK PitStop Main Earn $25 Earn Money Posting Extras Members Blogs Image Hosting User Pages
Go Back   Computer Webmaster Gaming Console Graphics Forum > Webmaster Forum > Website Coding > Database
Register FAQ/Rules Become A V.I.P. Member Search Today's Posts Mark Forums Read

Database Database problems or need to ask a question? maybe something to do with sql injections or a database software question. Database topics cover MySQL, PostgreSQL, Oracle, SQL Server or anything else related to databases.

Google
Reply
 
LinkBack Thread Tools Display Modes
Old 07-01-2007, 10:59 PM   #1
BlueBrooke
 
BlueBrooke's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default ORDER BY does not sort

Hi --

I have three tables: one for authors, one for books, and a link table
linking the author_id with the book_id.

I want to list first each author and then their books, excluding
authors that don't yet have books entered.

I did this:

// Only want to list authors that actually have books in the library
$query1 = "
SELECT DISTINCT author_id
FROM source_author";
$author_ids = mysql_query($query1) or die ("Error in query: $query1 .
" . mysql_error());
if (mysql_num_rows($author_ids) > 0) {
while(list($a_id) = mysql_fetch_row($author_ids)) {

// Get list of authors' names and dates
$query2 = "
SELECT *
FROM author
WHERE author_id = $a_id
ORDER BY birth, last";
$author_list = mysql_query($query2) or die ("Error in query: $query2 .
" . mysql_error());
if (mysql_num_rows($author_list) > 0) {

This worked -- my list includes only the authors who actually have
books entered (and the subsequent code listing the books works, too),
but my "ORDER BY" won't work no matter what I put into it ("birth" is
birth year and "last" is last name in the "author" table).

If I comment out my first query ($query1), the ORDER BY works, but
then I have not only authors with no books associated with them (in
the link table), I also have them listed many times.

I thought I'd figured out the hard part (distinct authors), but I
don't understand why my ORDER BY doesn't work? Is there a more
elegant way (that works <g>) to accomplish my goal?

Thank you for any help.
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Advertisements
Old 07-01-2007, 10:59 PM   #2
strawberry
 
strawberry's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default ORDER BY does not sort

On Jun 2, 5:13 pm, BlueBrooke wrote:
> Hi --
>
> I have three tables: one for authors, one for books, and a link table
> linking the author_id with the book_id.
>
> I want to list first each author and then their books, excluding
> authors that don't yet have books entered.
>
> I did this:
>
> // Only want to list authors that actually have books in the library
> $query1 = "
> SELECT DISTINCT author_id
> FROM source_author";
> $author_ids = mysql_query($query1) or die ("Error in query: $query1 .
> " . mysql_error());
> if (mysql_num_rows($author_ids) > 0) {
> while(list($a_id) = mysql_fetch_row($author_ids)) {
>
> // Get list of authors' names and dates
> $query2 = "
> SELECT *
> FROM author
> WHERE author_id = $a_id
> ORDER BY birth, last";
> $author_list = mysql_query($query2) or die ("Error in query: $query2 .
> " . mysql_error());
> if (mysql_num_rows($author_list) > 0) {
>
> This worked -- my list includes only the authors who actually have
> books entered (and the subsequent code listing the books works, too),
> but my "ORDER BY" won't work no matter what I put into it ("birth" is
> birth year and "last" is last name in the "author" table).
>
> If I comment out my first query ($query1), the ORDER BY works, but
> then I have not only authors with no books associated with them (in
> the link table), I also have them listed many times.
>
> I thought I'd figured out the hard part (distinct authors), but I
> don't understand why my ORDER BY doesn't work? Is there a more
> elegant way (that works <g>) to accomplish my goal?
>
> Thank you for any help.



Why are there two queries?

tables:
author(author_id*,f_name,l_name,dob) - where dob uses the DATE
datatype

book(book_id*,book)

author_book(author_id*,book_id*)

SELECT DISTINCT (
a.author_id
), f_name, l_name, dob
FROM author a
JOIN author_book ab ON a.author_id = ab.author_id
ORDER BY dob, l_name

 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Old 07-01-2007, 10:59 PM   #3
BlueBrooke
 
BlueBrooke's Avatar
 
Posts: n/a
My Photos: (0)

Banked:
MK Cash: $

I am Worth:
MK Cash: $
Donate

Recent Blog: None

Default ORDER BY does not sort

On Sat, 02 Jun 2007 18:10:17 -0000, strawberry <zac.carey@gmail.com>
wrote:

>On Jun 2, 5:13 pm, BlueBrooke wrote:
>> Hi --
>>
>> I have three tables: one for authors, one for books, and a link table
>> linking the author_id with the book_id.
>>
>> I want to list first each author and then their books, excluding
>> authors that don't yet have books entered.
>>
>> I did this:
>>
>> // Only want to list authors that actually have books in the library
>> $query1 = "
>> SELECT DISTINCT author_id
>> FROM source_author";
>> $author_ids = mysql_query($query1) or die ("Error in query: $query1 .
>> " . mysql_error());
>> if (mysql_num_rows($author_ids) > 0) {
>> while(list($a_id) = mysql_fetch_row($author_ids)) {
>>
>> // Get list of authors' names and dates
>> $query2 = "
>> SELECT *
>> FROM author
>> WHERE author_id = $a_id
>> ORDER BY birth, last";
>> $author_list = mysql_query($query2) or die ("Error in query: $query2 .
>> " . mysql_error());
>> if (mysql_num_rows($author_list) > 0) {
>>
>> This worked -- my list includes only the authors who actually have
>> books entered (and the subsequent code listing the books works, too),
>> but my "ORDER BY" won't work no matter what I put into it ("birth" is
>> birth year and "last" is last name in the "author" table).
>>
>> If I comment out my first query ($query1), the ORDER BY works, but
>> then I have not only authors with no books associated with them (in
>> the link table), I also have them listed many times.
>>
>> I thought I'd figured out the hard part (distinct authors), but I
>> don't understand why my ORDER BY doesn't work? Is there a more
>> elegant way (that works <g>) to accomplish my goal?
>>
>> Thank you for any help.

>
>
>Why are there two queries?
>
>tables:
>author(author_id*,f_name,l_name,dob) - where dob uses the DATE
>datatype
>
>book(book_id*,book)
>
>author_book(author_id*,book_id*)
>
>SELECT DISTINCT (
>a.author_id
>), f_name, l_name, dob
>FROM author a
>JOIN author_book ab ON a.author_id = ab.author_id
>ORDER BY dob, l_name


I could have sworn I tried that last night -- I spent most of
yesterday and this morning trying to accomplish this with one query,
but couldn't get it to work.

It works beautifully -- thank you so much.
 
Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit!
Reply With Quote
Featured Websites
Free Space
Free Space
Free Space Free Space
Reply
Tags: ,




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
SQL Sort by date Lee Database 12 07-01-2007 9:32 PM
PHP Search sort help please M.E. PHP 2 07-01-2007 5:31 PM
sort order Kurt Milligan PHP 2 07-01-2007 3:35 PM
How do I sort This array? Karl McAuley PHP 1 07-01-2007 3:18 PM
Does the PS3 have any sort of buzz about it being hot or a must have? Penguin Commandos for Gore. Computer Consoles 14 05-30-2007 10:03 PM


Featured Websites




All times are GMT +1. The time now is 3:27 AM.


Powered by: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.0.0
Cheap Computers
MK PitStop Copyright 2005 - 2008

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98