Jump to content

[SOLVED] creating invoice


jakebur01

Recommended Posts

Ok, I am trying to join 3 tables together to retrieve information to display on an invoice. I am new to joining tables and I keep confusing myself.

 

Heres what I've got:

 

customers table - has customerid, name, address, city, state, zip, and country

 

orders table - has orderid, customerid, amount, date, order_status, ship_name, ship_address, ship_city, ship_state, ship_zip, ship_country, c_phone, c_email, card_type, card_number, card_month, card_year, card_name

 

order_items table - has orderid, isbn, item_price, and quanity

 

 

Here's what i'm trying to do:

 

display address

 

display shipping address

 

display orders

 

display credit card information

 

Thank you,

 

`Jake

Link to comment
Share on other sites

Hi,

 

Not sure what you  mean by 'join the tables together'.  I'd have thought what you want to do is retrieve your order details from the order table first and then use the orderid and customerid fields to retrieve the data from the order_items and customers tables.

Link to comment
Share on other sites

so would i do three seperate querys under one connection?

 

Like:

$conn = db_connect();

//then

$query = select * from customers where

//then do a second query??

$query = select * from orders where

//and a third??

$query = select * from order_items

//??? I'm not sure exactly how to separate them???

Link to comment
Share on other sites

Yeah it would go

 

$query = "SELECT * FROM orders WHERE whatever";

 

You'd then create variables from this select like

 

$order_id = $row['order_id'];
$amount = $row['amount'];

$query = "SELECT * FROM order_items WHERE orderid = '$order_id'";

 

And so on...

 

 

Link to comment
Share on other sites

<?php
$query = "SELECT * FROM orders WHERE whatever";
$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
     $rows = $row;
}

echo '<pre>' . print_r($rows) . '</pre>';

?>

Link to comment
Share on other sites

Not jumbled up, that is the structure of the arrays when printed.  But I now see a flaw in the logic I gave you, try this instead:

 

<?php
$query = "SELECT * FROM orders WHERE whatever";
$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
     $rows[] = $row; // added the [] =) my bad.
}

echo '<pre>' . print_r($rows) . '</pre>';

?>

Link to comment
Share on other sites

ok ok, i see

 

now it returns this

 

Array ( [0] => Array ( [orderid] => 14 [isbn] => 30-015 [item_price] => 15.82 [quantity] => 1 ) )

1

 

with this code:

 

$query = "SELECT * FROM order_items WHERE orderid = '$coolid'";
$result = mysql_query($query, $db) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
   $rows[] = $row; 

}


echo '<pre>' . print_r($rows) . '</pre>';


Link to comment
Share on other sites

That should answer the question

 

What do I do when I am retrieving multible rows, like from the order items table where I have 5 rows where the orderid column equals 14 ?

 

Should it not? If there were multiple rows in that table with that id it would have been returned in that array.

Link to comment
Share on other sites

I'm sorry, I'm a little slow.

 

How do I implement that in with this following code?

 

$query = "SELECT * FROM order_items WHERE orderid = '$coolid'";
$result = mysql_query($query, $db) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
   $rows[] = $row; 

}

Link to comment
Share on other sites

<?php

$query = "SELECT * FROM order_items WHERE orderid = '$coolid'";
$result = mysql_query($query, $db) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
   $rows[] = $row;
}

$i = 1;

foreach($rows as $rowid => $rowarray) {
echo "<b>---- Row $rowid ----</b><br />\n\n";
foreach($rowarray as $rowfield => $rowvalue) {
  echo " $rowfield = $rowvalue<br />\n";
}
}

?>

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.