PHP/MYSQL бұл таңдау үш нəтижелерді қайталайды ... неге?

Мен бұл таңдауды пайдаланамын және деректерді шығару үшін уақытты пайдаланғанда, мен оны 3 рет қайталадым. Бір жақсы жан маған көмектесе алады? $ idr - айнымалы бірегей, қайталанбайды.

    $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.'';
0
Екіншіден, кодтың қалған бөлігіне сұрау. Сіздің SQL сұрауыңызда нәтижелерді бірінші сәйкес жазбаға шектеу үшін «LIMIT 1» қосуға болады. яғни. ... WHERE romaneios.id_romaneio = '. $ idr. 'LIMIT 1';
қосылды автор Patrick Moore, көзі
SQL инъекциясына арналған бұл тамаша жағдай емес пе (мысалы, орнына дайындалған мәлімдемелерді пайдалану)?
қосылды автор ladaghini, көзі
PHP кодын толығымен ...
қосылды автор Dejan Marjanovic, көзі
1) сіздің циклыңыз қандай көрінеді? 2) бұл сұрау MySQL-де тікелей іске қосылған кезде қайтып келеді?
қосылды автор chesles, көзі
@ladaghini бұл $ idr қайдан келгеніне байланысты, бірақ иә, ықтимал. Бұл мәселеден бөлек, біреудің орнына сұраудан қайтарылған үш нәтиже бар.
қосылды автор chesles, көзі

1 жауаптар

Екі ұпай:

1: You have the table clientes_enderecos listed but nothing is being selected from it and it does not appear in the where clause, so remove it.

2: You do not have a clause to restrict rows from clientes and romaneios by a matching foreign key. So each row in clientes will appear once for every row in romaneios.

Сондықтан, сізде басқа шартты қосу керек.

1
қосылды