@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 нужно использовать.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы