Obtener campos unicamente distintos mysqli

Iniciado por SrTrp, 12 Enero 2018, 05:45 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Bueno tengo una tabla la cual tienes varios campos iguales lo que quiero es que estos muestre solo los que no son iguales solo se me ocurre una forma pero necesitaria mil variables si uno tiene 1000 registros diferentes :v por eso queria saber si me pueden ayudar a hacer esto menos tedioso.
Código (php) [Seleccionar]

$d1 = "SELECT id_chatter FROM msjs WHERE id_usersend='$tds' OR id_userre='$tds' ORDER BY id_msj DESC";
           $df1 = $link->query($d1);
           $dfan1 = $df1->num_rows;
           if($dfan1 > 0){
               while($rows1 = $df1->fetch_assoc()) {
                   if(!isset($d1)){
                      $d1 = $rows1['id_chatter'];
                   }else{
                       if($d1 != $rows1['id_chatter']){
                           //Y AQUI NUEVAMENTE HACER OTRO IF CON EL ISSET $d2..
                       }
                   }
               }
           }

EFEX

Desde la linea 6 no entiendo a que quieres llegar. Quieres obtenes todos los chat de un usuario ? podrias explicar un poco mas y mostrar mas el codigo ?
GITHUB 

SrTrp

Pues eso sería todo desde donde quiero empezar a selecionar los chat del usuario, $tds es el id del usuario, y a lo que voy que quiero es solo tomar y saber cuantos chats son diferentes.

EFEX

Si entendi bien, podes usar GROUP BY id_chatter y despues contar cuantas filas devuelve.

O con una consulta deberia devolver la cantidad de chats en que el usuario participa
Código (sql) [Seleccionar]

SELECT COUNT(total_chats) AS total FROM (
  SELECT COUNT(id_chatter) AS total_chats
  FROM msjs
  WHERE id_usersend='$tds' OR id_userre='$tds'
  GROUP BY id_chatter
  ORDER BY id_msj DESC
) AS a


Esto es lo que quieres lograr? corrobora bien con la db.
GITHUB 

SrTrp

#4
Si es lo que buscaba ahora solo tengo una duda como podria usar un AND y un OR al mismo tiempo es parece que solo toma 2 valores si uso tal como este comando me muestra lo de todos los chats que me escriben..
Código (sql) [Seleccionar]

SELECT * FROM msjs WHERE id_userre='$tds' OR id_usersend='$tds' AND id_chatter='$idderchat' ORDER BY id_msj ASC


Y como este chat solo me da todo lo recibido de ese chat y todo lo que eh enviado a diferentes chats..
Código (sql) [Seleccionar]

SELECT * FROM msjs WHERE id_chatter='$idderchat AND id_userre='$tds' OR id_usersend='$tds' ' ORDER BY id_msj ASC


aHHH ya logre solucionarlo con unos corchetes..
Código (sql) [Seleccionar]

SELECT * FROM msjs WHERE  (id_userre='$tds' OR id_usersend='$tds') AND id_chatter='$idderchat' ORDER BY id_msj ASC