2011-10-28 2 views
0

私はこの選択を使用しています。データを出力するときに使用すると、3回繰り返されます。良い魂が私を助けることができますか? $ idrは一意の変数で、繰り返しはありません。PHP/MYSQLこの選択は、3つの結果がエコーで繰り返されることを示しています...なぜですか?

$sqlRomaneio = 'SELECT clientes.id_cliente, 
          clientes.razao_social, 
          clientes.cpf_cnpj, 
          clientes.identidade_inscricao, 
          clientes.foto, 
          clientes.tipo_cliente, 
          romaneios.data_criacao, 
          romaneios.id_endereco_entrega, 
          romaneios.modo_entrega, 
          romaneios.custo_entrega_valor, 
          romaneios.custo_entrega_pago_por, 
          romaneios.modo_recebimento, 
          romaneios.custo_recebimento_valor, 
          romaneios.custo_recebimento_pago_por, 
          romaneios.quantidade_pecas, 
          romaneios.valor_total, 
          romaneios.finalizado 
        FROM clientes, romaneios, clientes_enderecos 
        WHERE romaneios.id_romaneio = '.$idr.''; 
+1

PHPコード全体を投稿... –

+0

1)あなたのwhileループはどのように見えますか? 2)MySQLでこのクエリを実行すると、このクエリは何を返しますか? – chesles

+0

2番目のコードの残りの要求。 SQLクエリでは、 "LIMIT 1"を追加して、結果を最初に一致するレコードに限定することができます。すなわち、 ...どこにromaneios.id_romaneio = '。 $ idr。 'LIMIT 1'; –

答えて

1

2点:

:あなたがテーブルclientes_enderecosがリストを持っているが、何もそれから選択されていないと、それはWHERE句に表示されますので、それを削除しません。

:対応する外部キーによって行をclientesromaneiosに制限する句がありません。したがって、clientesの各行は、romaneiosの行ごとに1回表示されます。

したがって、where句に別の条件を追加する必要があります。

関連する問題