PHP: $uid = $_GET['uid']; $user_list = mysql_query("SELECT tc.ucid, tc.city_name, ts.osid, ts.order_status, ts.order_color, tr.order_status_id, tr.id, tr.user_id, tr.order_date, tu.uid, tu.name, tu.lastname, tu.city, tu.street, tu.building, tu.room, tu.phone, tu.email FROM orders_list tr, users tu, order_status ts, city tc WHERE tr.user_id = tu.uid AND ts.osid = tr.order_status_id AND tu.city = tc.ucid AND tu.uid = '$uid'") or die("Error! ".mysql_error()); $user = mysql_fetch_array ($user_list); echo "<p>".$user['lastname']." ".$user['name']."</font></p> <p>г. ".$user['city_name'].", ул. ".$user['street'].", д. ".$user['building'].", кв. ".$user['room']."<br> Тел: ".$user['phone']."; Электронная почта: ".$user['email']."</p>"; $order_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tb.brand_name, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id, ts.user FROM product_info tp, brands tb, categories tc, users tu, shopping_cart ts WHERE tp.parent_brand = tb.id AND tp.parent_categorie = tc.id AND tp.id = ts.product AND ts.user = '$uid'") or die("Error2! ".mysql_error()); while ($user) {echo "<ol><li>Заказ №".$user['id']." ".$user['order_date']." — <font color='".$user['order_color']."'>".$user['order_status']."</font>"; while ($order = mysql_fetch_array ($order_list)) { if ($user['id'] == $order['order_id']) { echo "<table>"; $summ = $order['price'] * $order['qty']; $sum_sum += $summ; echo "<tr> <td>".$order['synonym']." ".$order['brand_name']." ".$order['model_name']."</td> <td>".$order['type']."</td> <td>".$order['qty']."</td> <td>".$order['price']."</td> <td>".$summ."</td> </tr></table>"; } } echo $sum_sum."</li></ol>"; } На выходе выдает И так все уходит в бесконечность. Где я налажал?
LAlexS во-первых, было бы неплохо, если бы код был оформлен в теги пхп, а не код. во-вторых, если ты делаешь цикл по условию, то внутри цикла это условие должно меняться, чтобы цикл когда-нибудь прервался. где у тебя внутри цикла происходит назначение переменной $user значения false, чтобы цикл прервался?
Ответ пожалуйста: правильно ли я понял назначение скрипта и следующие мои предположения 1) Вывести данные пользователя с переданным $_GET['uid'] 2) Вывести все заказы данного пользователя. При этом заказов может быть несколько 3) вывести данные заказанного товара. При этом в одном заказе может быть несколько товаров. 4) Как получить заказанные товары конкретного заказа?
Gromo Я пробовал mysql_data_seek, но не помогло runner с 1 по 3 все правильно. Это список всех заказов, как просто информационно-статическая страничка
Нужно данные для вывода получать отдельно 1) данные пользователя отдельным запросом 2) заказы данного пользователя отдельным запросом 3) товары для каждого заказа тоже отдельным запросом- только непонятно как получить из таблицы shopping_cart товары по конкретному заказу PHP: $uid = $_GET['uid']; //данные пользователя $user_list = mysql_query("select tu.*,tc.* from users tu,city tc where tu.uid='$uid' AND tu.city = tc.ucid ") or die("Error! ".mysql_error()); $user = mysql_fetch_array ($user_list); echo "<p>".$user['lastname']." ".$user['name']."</font></p> <p>г. ".$user['city_name'].", ул. ".$user['street'].", д. ".$user['building'].", кв. ".$user['room']."<br> Тел: ".$user['phone']."; Электронная почта: ".$user['email']."</p>"; // список заказов $order_list =mysql_query("SELECT ts.* tr.* FROM orders_list tr, order_status ts WHERE tr.user_id = '$uid' AND ts.osid = tr.order_status_id ")) or die("Error2! ".mysql_error()); while ($order = mysql_fetch_array ($order_list)) { echo "<ol><li>Заказ №".$order['id']." ".$order['order_date']." — <font color='".$order['order_color']."'>".$order['order_status']."</font>"; // здесь нужно получить и вывести список заказанных товаров }
runner Спасибо, без твоего поста, я бы наверно еще долго бы мучался. Вот рабочая версия, может кому пригодится: PHP: $uid = $_GET['uid']; $user_list = mysql_query("SELECT tc.ucid, tc.city_name, tu.uid, tu.name, tu.lastname, tu.city, tu.street, tu.building, tu.room, tu.phone, tu.email FROM users tu, city tc WHERE tu.city = tc.ucid AND tu.uid = '$uid'") or die("Error! ".mysql_error()); $user = mysql_fetch_array ($user_list); echo "<p>".$user['lastname']." ".$user['name']."</font></p> <p>г. ".$user['city_name'].", ул. ".$user['street'].", д. ".$user['building'].", кв. ".$user['room']."<br> Тел: ".$user['phone']."; Электронная почта: ".$user['email']."</p>"; $order_list = mysql_query("SELECT tr.*, ts.* FROM orders_list tr, order_status ts WHERE tr.order_status_id = ts.osid AND user_id = '$uid'") or die("Error2! ".mysql_error()); $cart_list = mysql_query("SELECT tp.id, tp.model_name, tp.parent_brand, tb.brand_name, tc.synonym, ts.product, ts.qty, ts.price, ts.type, ts.cart, ts.order_id, ts.user FROM product_info tp, brands tb, categories tc, shopping_cart ts WHERE tp.parent_brand = tb.id AND tp.parent_categorie = tc.id AND tp.id = ts.product AND ts.user = '$uid' AND ts.cart = '0'") or die("Error3! ".mysql_error()); echo "<ol>"; while ($order = mysql_fetch_array ($order_list)) {echo "<li>Заказ №".$order['id']." ".$order['order_date']." — <font color='".$order['order_color']."'>".$order['order_status']."</font>"; while ($cart = mysql_fetch_array ($cart_list)) { if ($order['id'] == $cart['order_id']) { echo "<table>"; $summ = $cart['price'] * $cart['qty']; $sum_sum += $summ; echo "<tr> <td>".$cart['synonym']." ".$cart['brand_name']." ".$cart['model_name']."</td> <td>".$cart['type']."</td> <td>".$cart['qty']."</td> <td>".$cart['price']."</td> <td>".$summ."</td> </tr></table>"; } } echo $sum_sum."</li>"; mysql_data_seek($cart_list, 0);} echo "</ol>";