www.webdeveloper.com
Results 1 to 3 of 3

Thread: Sorting After the Query

  1. #1
    Join Date
    May 2009
    Posts
    241

    Sorting After the Query

    I have a database of catering orders. Some of the orders have refill times (1 & 2). I need to display a list of all order, including separate entries for those with refill times, in chronological order for a particular date. So if order A has 2 refill times I want to see this:

    order A (9 am)
    order B (10 am)
    order C (11 am)
    order A refill 1 (12 pm)
    order D (1 pm)
    order E (2 pm)
    order A refill 2 (3 pm)
    etc

    I am unable to figure out the query this is what I have:

    PHP Code:
    $sql1="SELECT * FROM forms_hostess WHERE month='$m' AND day='$d' AND year='$y' AND cancelled!='x' ORDER BY starttime"
    This just shows the order once not 3 times (1 - for the order, 2 - for refill 1, 3 - for refill 2)

    I am assuming that I have to have code after the fact checking for if there are refill times and reiterated the entry but I am unsure how.

  2. #2
    Join Date
    Jul 2013
    Location
    Voorheesville NY USA
    Posts
    788
    Sounds like you have built your db incorrectly. Normalize it.

    I know - you don't have a clue what normalize means. It means you don't duplicate column/field data within a record - you create a second(or third or fourth, etc.) record, or you place those items that are duplicated for a key value into a second table. So - perhaps an order for a client creates and 'order' record, but if that order needs to generate multiple actions (refills), then you create the order record with the client info (perhaps) but then you create a 'order_process' table that links to the order number but then provides the refill data for that order, which will contain at least ONE record for each order.
    JG
    PS - If you're posting here you should be using:

    error_reporting(E_ALL | E_NOTICE);
    ini_set('display_errors', '1');


    at the top of ALL php code while you develop it!

  3. #3
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,388
    Without a better DB schema, this is all I can think of off the top of my head:
    PHP Code:
    $sql1 = <<<EOD
    (
      SELECT *, starttime AS sort_time 
      FROM forms_hostess
      WHERE month='
    $m' AND day='$d' AND year='$y' AND cancelled!='x'
    ) UNION (
      SELECT *, refill_1 AS sort_time 
      FROM forms_hostess
      WHERE month='
    $m' AND day='$d' AND year='$y' AND cancelled!='x' AND refill_1 IS NOT NULL
    ) UNION (
      SELECT *, refill_2 AS sort_time 
      FROM forms_hostess
      WHERE month='
    $m' AND day='$d' AND year='$y' AND cancelled!='x' AND refill_2 IS NOT NULL
    )
    ORDER BY sort_time
    EOD; 
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles