PHP biçimlendirilmiştir metin olarak bir SELECT sorgusu baskı sonuçları?

2 Cevap php

Ben önceden biçimlendirilmiş metin olarak PHP MySQL SELECT sorgusu sonuçlarını yazdırmak için kolay ve hızlı bir yol arıyorum. Ne istiyorum bir fonksiyona bir sorgu nesnesi geçirmek ve SELECT ifadeleri çalıştırırken komut satırı MySQL istemcisi gibi kayıt bir çıktısı yok almak mümkün olmaktır.

İşte ben bunu (yani ASCII) bakmak istiyorum nasıl bir örnek:

+----+-------------+
| id | countryCode |
+----+-------------+
|  1 | ES          |
|  2 | AN          |
|  3 | AF          |
|  4 | AX          |
|  5 | AL          |
|  6 | DZ          |
|  7 | AS          |
|  8 | AD          |
|  9 | AO          |
| 10 | AI          |
+----+-------------+

Ben bir SELECT sorgusu yapıyor ve onay için kullanıcıya sonuçlarını görüntülemek istediğiniz ediyorum, genel ithalat komut dosyası için temelde.

2 Cevap

Eğer HTML olmayan bir sabit genişlik çıkışı olması gerekir, sprintf, senin arkadaşın.

ETA:

//id: integer, max width 10
//code: string max width 2

$divider=sprintf("+%-10s+%-13s+",'-','-');

$lines[]=$divider;
$lines[]=sprintf("|%10s|%13s|",'id','countryCode'); //header
$lines[]=$divider;

while($line=$records->fetch_assoc()) {
    //store the formatted output
    $lines[]=sprintf("| %10u | %2.2s |", $line['id'],$line['code']);
}
$table=implode("\n",$lines);
echo $table;

Eğer, bunun yerine sonuçları saklamak hemen yazdırmak kullanmak printf yerine-aynı sözdizimi istiyorum. Makul bir PHP (ler) printf öğretici olduğunu here.

function formatResults($cols, $rows) {
    echo'<table>';
    echo '<tr>';

    foreach ($cols as $v) {
        echo '<th>' . $v['field'] . '</th>';
    }
    echo '</tr>';

    foreach ($rows as $sRow) {
        echo '<tr>';

        foreach ($sRow as $v) {
            echo "<td>$v</td>";
        }

        echo '</tr>';
    }

    echo '</table>';
}

$qry = $pdo->query('DESCRIBE table');
$cols = $qry->fetchAll(PDO::FETCH_ASSOC);

$pdo->query('SELECT * FROM table');
$rows = $qry->fetchAll(PDO::FETCH_ASSOC);

formatResults($cols, $rows);

Denenmemiş ama çalışması gerekir.

Edit: Cevapsız ['alan'] index ;)