Hello! I'm a newbie. I am writing a PHP store. I did everything, but I can't get orders to view.
The code is attached. I am writing on a primitive procedural php, even without functions, because I still cannot figure out how to output everything correctly.
There are 2 tables:
- Orders table
orders
with fields- id_order
- name_order (customer name)
- e-mail (customer's email)
- phone
- address
- customer (order number from session)
- id_good (product id)
- quantity (quantity of goods)
- datetime (order date)
- Product table
good
, which containsid_good
,name_good
and other fields.
I want to withdraw orders in this way:
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: 18qskgmvp0i4133sbqfct1c0j3 ΠΠΌΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: ΠΠΎΠ»Ρ E-mail: kolia@mail.ru Π’Π΅Π»Π΅ΡΠΎΠ½: 99999999999999 ΠΠ΄ΡΠ΅Ρ: Π³. ΠΠΎΡΠΊΡΡΠ°, ΡΠ». ΠΠ΅Π΄Π²Π΅Π΄Π΅ΠΉ, 77 ΠΠ°ΡΠ° Π·Π°ΠΊΠ°Π·Π°: 31-08-2016 19:21:37 ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: Π’ΠΎΠ²Π°Ρ 4 ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ 1 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: 4 Π¦Π΅Π½Π°: 5 ΡΡΠ±. Π‘ΡΠΌΠΌΠ°: 20 ΡΡΠ±. ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: Π’ΠΎΠ²Π°Ρ 3 ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ 1 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: 1 Π¦Π΅Π½Π°: 4 ΡΡΠ±. Π‘ΡΠΌΠΌΠ°: 4 ΡΡΠ±.
And I can only get this way:
ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: 18qskgmvp0i4133sbqfct1c0j3 ΠΠΌΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: ΠΠΎΠ»Ρ E-mail: kolia@mail.ru Π’Π΅Π»Π΅ΡΠΎΠ½: 99999999999999 ΠΠ΄ΡΠ΅Ρ: Π³. ΠΠΎΡΠΊΡΡΠ°, ΡΠ». ΠΠ΅Π΄Π²Π΅Π΄Π΅ΠΉ, 77 ΠΠ°ΡΠ° Π·Π°ΠΊΠ°Π·Π°: 31-08-2016 19:21:37 ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: Π’ΠΎΠ²Π°Ρ 4 ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ 1 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: 4 Π¦Π΅Π½Π°: 5 ΡΡΠ±. Π‘ΡΠΌΠΌΠ°: 20 ΡΡΠ±. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: 18qskgmvp0i4133sbqfct1c0j3 ΠΠΌΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: ΠΠΎΠ»Ρ E-mail: kolia@mail.ru Π’Π΅Π»Π΅ΡΠΎΠ½: 99999999999999 ΠΠ΄ΡΠ΅Ρ: Π³. ΠΠΎΡΠΊΡΡΠ°, ΡΠ». ΠΠ΅Π΄Π²Π΅Π΄Π΅ΠΉ, 77 ΠΠ°ΡΠ° Π·Π°ΠΊΠ°Π·Π°: 31-08-2016 19:21:37 ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: Π’ΠΎΠ²Π°Ρ 3 ΠΠ°ΡΠ΅Π³ΠΎΡΠΈΡ 1 ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: 1 Π¦Π΅Π½Π°: 4 ΡΡΠ±. Π‘ΡΠΌΠΌΠ°: 4 ΡΡΠ±.
How to withdraw orders that customer details were repeated once, and under them all ordered goods were displayed? Code below:
global $link; $sql_order = "SELECT * FROM orders"; // Π²ΡΠ²ΠΎΠ΄ Π΄Π°Π½Π½ΡΡ
Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ° $query_order = mysqli_query($link, $sql_order) or die(mysqli_error($link)); $num_order = mysqli_num_rows($query_order); for($i = 0; $i <= $num_order; $i++){ $row_order = mysqli_fetch_assoc($query_order); echo '<h4>ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: ' .$row_order['customer'].'<br />ΠΠΌΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΠ°: '.$row_order['name_order'].'<br />E-mail: '.$row_order['email'].'<br />Π’Π΅Π»Π΅ΡΠΎΠ½: ' .$row_order['phone'].'<br />ΠΠ΄ΡΠ΅Ρ: '.$row_order['address'].'<br />ΠΠ°ΡΠ° Π·Π°ΠΊΠ°Π·Π°: '.date("dmY H:i:s", $row_order['datetime']). '</h4>'; echo '<br />'; $id_good = $row_order['id_good']; $sql_good = "SELECT * FROM goods WHERE id_good = '$id_good'"; // Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ²Π°ΡΠΎΠ² $query_good = mysqli_query($link, $sql_good) or die(mysqli_error($link)); while($row_good = mysqli_fetch_assoc($query_good)){ echo 'ΠΠ°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ²Π°ΡΠ°: '.$row_good['name_good']; echo '<br />'; echo 'ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ: '.$row_order['quantity']; echo '<br />'; echo 'Π¦Π΅Π½Π°: '.$row_good['price_good'].' ΡΡΠ±.'; echo '<br />'; $sum = $row_good['price_good']*$row_order['quantity']; echo $sum.' ΡΡΠ±.'; echo '<br />'; } echo '<hr />'; }
$i <= $num_order;
write, and$i < $num_order;
...... but for accuracy, of course, we need demo data tables ........... something like this sqlfiddle.com/#!9/db6c7 - Alexey Shimansky