webForumDet fria alternativet

Lite hjälp med att kombinera 2 tabeller och få ut data.

Databaser & SQL

1 svar · 955 visningar · startad av jkarlbegr

Medlem sedan juni 20111 inlägg
Frågan#1

Hej!

Har en webshop som jag försöker effektivisera vid packning av ordrar.

Håller på att försöka få ut en lista på produkter som ska plockas till alla ordrar som är nya.

Tabellerna som jag behöver information ifrån är orders och orders_products.

Just nuj försöker jag bara få en lista med antal och artikelnummer.

Har fått det att fungera med denna kod:

$orders = "";
$orders_query = tep_db_query("SELECT * from " . TABLE_ORDERS . " WHERE orders_status =2 ORDER by orders_status, orders_id desc");

while($orders_rows = tep_db_fetch_array($orders_query))
{
$products = "";
$products_query = tep_db_query("SELECT * FROM " . TABLE_ORDERS_PRODUCTS . " WHERE orders_id = '" . $orders_rows['orders_id'] . "' ");

while($products_rows = tep_db_fetch_array($products_query))
{
$ordStatus="";
$ordStatus_query = tep_db_query("SELECT * from " . TABLE_ORDERS_STATUS . " WHERE orders_status_id = '" . $orders_rows['orders_status'] . "' ");
$ordStatus_rows = tep_db_fetch_array($ordStatus_query);
echo "<tr>";
echo "<td class=dataTableContent>" . $ordStatus_rows["orders_status_name"] . "</td>";
echo "<td class=dataTableContent>" . $orders_rows["orders_id"] . "</td>";
echo "<td class=dataTableContent>" . $products_rows["products_quantity"] . "</td>";
echo "<td class=dataTableContent>" . $products_rows["products_name"] . "</td>";
echo "<td class=dataTableContent>" . $products_rows["products_price"] . "</td>";
echo "</tr>";
?>
<tr>
<?php
// --------------------    QUERIES 9  ------------------------------------//
//Get list of products ordered
$orders_products = tep_db_query("select products_model, products_price, products_quantity, products_name from orders_products
where orders_id = " . $orders_rows["orders_id"]);

// While loop to list the item
while($row_orders_products = mysql_fetch_array($orders_products)) {

echo ($row_orders_products[2]) , "x", ($row_orders_products[0]), "&nbsp;orderid&nbsp;",($orders_rows["orders_id"]) .  "<br>" ;

} // end while loop for products

Dock känns det rent spontant som att det borde gå att göra det enklare :)

Typ föra samman orders och orders_products, hämta de som har order_status 1 (avvaktar) och sen få ut vilka produkter och antalet som ska skrivas ut.

Som koden är nu så blir resultatet konstigt om 2 ordrar innehåller likadana produkter.

då listas de under varandra typ

1x produkt 1
1xprodukt 1

Vill att det ska stå 2x produkt 1 istället så går man och hämtar alla produkter till packbordet och sedan plockar man ordrarna där istället för att springa runt flera mil i hyllsystemet flera gånger :)

Om nån vill hjälpa mig är det oerhört tacksamt.
Löses det smidigt är jag villig att donera lite pengar :)

Tack på förhand!

Medlem sedan juni 201161 inlägg
#2

Om du kan förklara lite bättre hur tabellerna ser ut och vad du vill ha listat från dem, så kan jag skriva SQL:en åt dig. Men jag orkar inte läsa PHP-kod för att ta reda på det själv.

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
120 ms — ändringar (db)