Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP, MySQL, WYBIERZ pytanie

Myślę, że najlepszym sposobem na zrobienie tego byłby kod PHP, a nie SQL.

Możesz to osiągnąć, po prostu tworząc tablicę asocjacyjną w PHP, używając pola „tekst” jako klucza, który zawiera żądane dane – i wypełniając ją podczas pobierania informacji z bazy danych.

Przykład:

SQL:SELECT * FROM myTable

Kod PHP:

<?php

// Connect to MySQL database
$result = mysql_query($sql_query_noted_above);
$stringsInfo = array();
while ($row = mysql_fetch_assoc($result))
{
    if (!isset($stringsInfo[$row['text']]))
    {
        $stringsInfo[$row['text']] = array('types' => array(), 'idAccounts' => array());
    }

    $stringsInfo[$row['text']]['types'][] = $row['type'];
    $stringsInfo[$row['text']]['idAccounts'][] = $row['idAccount'];
}

?>

To da ci następującą tablicę:

'myTextString' => 'types' => 'type1', 'type2', 'type3'
                  'idAccounts' => 'account1', 'account2'

'anotherTextString' => 'types' => 'type2', 'type4'
                       'idAccounts' => 'account2', 'account3'

i tak dalej.

Mam nadzieję, że to pomocne.

EDYCJA:Plakat poprosił o pomoc w wyświetlaniu.

<?php

foreach ($stringsInfo as $string => $info)
{
    echo $string . '<br />';
    echo 'Types: ' . implode(', ', $info['types']); // This will echo each type separated by a comma
    echo '<br />';
    echo 'ID Accounts: ' . implode(', ', $info['idAccounts']);
}

/* Alternatywnie możesz zapętlić każdą tablicę zawartą w $info, jeśli potrzebujesz większej kontroli */

foreach ($stringsInfo as $string => $info)
{
    echo $string . '<br />';
    echo 'Types: ';
    foreach ($info['types'] as $type)
    {
        echo $type . ' - ';
    }
    echo '<br />';
    echo 'ID Accounts: '
    foreach ($info['idAccounts'] as $idAccount)
    {
        echo $idAccount . ' - ';
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj wiele wierszy w jednym zapytaniu MySQL

  2. Jak wybrać wiersz maksymalnej wartości w tabeli mysql?

  3. Wybierz wiersze z jednej tabeli, połącz ostatni wiersz z innej tabeli w relacji jeden-do-wielu

  4. .NET Core 2.0 z MySQL:Określony klucz był za długi; maksymalna długość klucza to 3072 bajty

  5. host localhost nie może połączyć się z tym serwerem MySQL