@radio_mus

Как правильно вывести данные из скрещенных таблиц?

Здравствуйте. Помогите пожалуйста разобраться, уже всю голову сломал, не понимаю в чем дело.

Дано:
есть таблица "orders" в БД, в ней содержаться в двух столбцах email адреса;
во второй таблице "reg_user", содержится вся инфа о пользователе (фио, контакты...).

Задача проста:
Нужно скрестить таблицы и вывести в html в табличной форме.

Что я делаю:
echo '<table>
            <tr>
            <td class="zag">№</td>
            <td class="zag">Отправитель</td>
            <td class="zag">Получатель</td>
            <td class="zag">Страна</td>
            <td class="zag">Город</td>
            </tr>';            

$result = mysql_query("SELECT
                        orders.sender, 
                        orders.receiver, 
                        reg_user.surname,
                        reg_user.name,
                        reg_user.patronymic,
                        reg_user.email,
                        reg_user.phone,
                        reg_user.address,
                        reg_user.city,
                        reg_user.zip,
                        reg_user.country,
                        reg_user.info,
                        reg_user.region
                        
                       FROM
                        orders, 
                        reg_user
                        
                       WHERE
                        orders.receiver = reg_user.email;",$link);
    if (mysql_num_rows($result) > 0){
    $row = mysql_fetch_array($result);
     do{
        $i++;
        echo '<tr>
            <td>'.$i.'</td>
            <td title="';
                $result2 = mysql_query("SELECT * FROM reg_user WHERE email='{$row['sender']}'",$link);
                if (mysql_num_rows($result2) > 0){
                    $row2 = mysql_fetch_array($result2);
                echo $row2["surname"].' '.$row2["name"].', '.$row2["country"].', '.$row2["city"].', '.$row2["sending"];
                }
            echo '">'.$row["sender"].'</td>
            <td>'.$row["receiver"].'</td>
            <td>'.$row["country"].'</td>
            <td>'.$row["city"].'</td>
                </tr>';
        }while ($row = mysql_fetch_array($result));
        }


Но таблица отрисовывает неправильное количество пользователей (как правило дорисовывает до 4 строк лишних). То есть, если в таблице orders есть 300 строк, то при скрещивании и отрисовки в таблице будет около 305 строк (а должно быть просто 300).

Подскажите пожалуйста, в чем может быть загвоздка? Что я делаю не так?
Всем откликнувшимся, огромное спасибо!
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
@4604590
JavaScript, HTML/CSS, PHP,MySQL, SuiteCRM/SugarCRM
INNER JOIN нужно использовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 18:27
200000 руб./за проект
26 апр. 2024, в 18:24
80000 руб./за проект
26 апр. 2024, в 18:00
500 руб./за проект