Pues no se exactamente por que me haciendo un foreach me muestra 4 veces el mismo resultado. llevo un rato buscando y no encuentro el fallo a ver si entre 93489328 ojos vemos mas que los dos mios.
 
utilizo una funcion para hacer las consultas a mysqli es es esta: 
 Código PHP:
    function Consulta_Dinamica() { global $Conectar;
    $Parametros = func_get_args();
    $Cuenta_Parametros = count($Parametros);
    for($num = 0; $num < $Cuenta_Parametros; $num++) {
        if ($Parametros[0]=='Array') { $ResPaises = array();
            $CDin = "SELECT ".$Parametros[1]." FROM `".$Parametros[2]."` WHERE ".$Parametros[3]." ";
            $RDin = mysqli_query($Conectar, $CDin);
            while($ADinamico = mysqli_fetch_assoc($RDin)) { $Ddinamicos[] = $ADinamico; }
        }
        if ($Parametros[0]=='Simple') {
            $CDin = "SELECT ".$Parametros[1]." FROM `".$Parametros[2]."` WHERE ".$Parametros[3]." ";
            $RDin = mysqli_query($Conectar, $CDin);
            $Ddinamicos = mysqli_fetch_array($RDin);
        }
    }
 return $Ddinamicos;
} 
    
  y luego el codigo con el que llamo a la función y hago el foreach es este.  
 Código PHP:
   
    $CFacturas = Consulta_Dinamica("Array","*","Facturas"," `que` = 'Venta' AND `empresa` = '".$_SESSION['usuario_empresa']."' ");
    if ($CFacturas) { ?>
    <table class="cien">
        <thead>
            <tr>
                <th class="primera 10porcien">Codigo</th>
                <th class="centro_listados 20porcien">Cliente</th>
                <th class="centro_listados 10porcien">Fecha</th>
                <th class="centro_listados 10porcien">Estado</th>
                <th class="ultima centro_listados 10porcien">Opciones</th>
            </tr>
        </thead>
<tbody>
<?php foreach($CFacturas as $DFacturas) { //creo un array con el listado de facturas 
    if ($DFacturas["estado"] == 1 ){ $estado="rojo"; }
    if ($DFacturas["estado"] == 2 ){ $estado="negro"; }
    if ($DFacturas["estado"] == 3 ){ $estado="verde"; }
 
$Factu_cliente=$DFacturas["cliente"];
for($Fpalabra = 30; $Fpalabra > 0; $Fpalabra--) { if($Factu_cliente {$Fpalabra} == ' ') break; } //acorto el nombre del cliente sin cortar palabras ?>
    
    <tr class="buskibuski buskibuski_ConsFacturas" onClick="VerMas('ConsFacturas','Facturas','modificar','modificar_facturas','<?=$DFacturas["id"]?>')">
        <td class="izquierda_listados veinte <?=$estado ?>"> <?=$DFacturas["codfactura"];?></td>
        <td class="centro_listados diez"><?=substr($Factu_cliente, 0, $Fpalabra);; ?></b></td>
        <td class="centro_listados diez"><?=date("d/m/Y",strtotime($DFacturas["fecha"]));?></td>
        <td class="centro_listados diez"><i class="fa fa<?php if ($DFacturas["bloqueado"]==1) { echo "-minus-circle rojo"; } else { echo "-check verde"; } ?>" aria-hidden="true"></i></td>
        <td class="centro_listados diez"><input type="button" class="boton" value="Opciones"></td>
    </tr>
<?php 
} //cierro el array de los facturas 
?>    
  No se si sera importante, pero uso php7. 
Mil gracias a todos