PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   SQL / Datenbanken (https://www.php-resource.de/forum/sql-datenbanken/)
-   -   GROUP BY mit einem Spaltenwert nur eindeutige Inhalte ausgeben (https://www.php-resource.de/forum/sql-datenbanken/106111-group-by-mit-einem-spaltenwert-nur-eindeutige-inhalte-ausgeben.html)

sanktusm 29-11-2017 14:32

GROUP BY mit einem Spaltenwert nur eindeutige Inhalte ausgeben
 
Hallo,
ich habe hier eine Reihe mit sagen wir dem Inhalt eins für die Spalte raum. Dieser Inhalt ist in der Datenbank zwei mal vorhanden. Nun möchte ich, dass die Reihe nur einmal ausgegeben wird. Versucht habe ich es so:

PHP-Code:

  public static function refreshRooms($id$consultant)
    {
      
$arr = array();
      
$jsonData '{"results":[';
      
$db_connection = new mysqliself::DB_HOSTself::DB_USERself::DB_PASSWORDself::DB_NAME);
      
$db_connection->query"SET NAMES 'UTF8'" );
      
$statement $db_connection->prepare"SELECT DISTINCT id, author, room FROM wov_webchat_lines WHERE id > ? AND ts >= DATE_SUB(NOW(), INTERVAL 10 HOUR) AND author != '$consultant' GROUP BY room");
      
$statement->bind_param'i'$id);
      
$statement->execute();
      
$statement->bind_result($id$author$room);
      
$line = new stdClass;
      while (
$statement->fetch()) {
        
$line->id $id;
        
$line->room $room;
        
$line->author $author;
        
$line->main_id 158;
        
$line->forms_token $_SESSION['forms_token'];
        
$arr[] = json_encode($line);
      }
      
$statement->close();
      
$db_connection->close();
      
$jsonData .= implode(","$arr);
      
$jsonData .= ']}';
      return 
$jsonData;
    } 

Hat mir jemand ein Tipp, wie man das am besten hinkriegt?

Kropff 29-11-2017 19:30

Welcher Inhalt ist doppelt? author oder room?

Gruß
Peter

sanktusm 30-11-2017 10:02

room ist doppelt und author ist doppelt
 
room ist doppelt und author ist doppelt

sanktusm 30-11-2017 10:07

So gehts
 
PHP-Code:

public static function refreshRooms($id$consultant)
    {
      
$arr = array();
      
$jsonData '{"results":[';
      
$db_connection = new mysqliself::DB_HOSTself::DB_USERself::DB_PASSWORDself::DB_NAME);
      
$db_connection->query"SET NAMES 'UTF8'" );
      
$statement $db_connection->prepare"SELECT DISTINCT id, author, room FROM wov_webchat_lines WHERE id > ? AND ts >= DATE_SUB(NOW(), INTERVAL 100 HOUR) AND author != '".$consultant."' GROUP BY  room, author");
      
$statement->bind_param'i'$id);
      
$statement->execute();
      
$statement->bind_result($id$author$room);
      
$line = new stdClass;
      while (
$statement->fetch()) {
        
$line->id $id;
        
$line->room $room;
        
$line->author $author;
        
$line->main_id 158;
        
$line->forms_token $_SESSION['forms_token'];
        
$arr[] = json_encode($line);
      }
      
$statement->close();
      
$db_connection->close();
      
$jsonData .= implode(","$arr);
      
$jsonData .= ']}';
      return 
$jsonData;
    } 



Alle Zeitangaben in WEZ +2. Es ist jetzt 23:19 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG