PHP MYSQL - Yardım Patlat

3 Cevap php

Selamlar,

I have data stored on mysql with delimiter "," in 1 table. I have rows and column stored on database too. Now i have to output the data using rows and column number stored on database to draw the table.

Satır ve sütun numarası kullanıcı girişi vardır, bu yüzden olabilir değişir.

Satırlarda kolonu ve 3 sayı 3 var, diyelim.

Ben, gibi ekran gibi yapmak gerekiyor

|___d1__|___d2__|___d3__|
|___d4__|___d5__|___d6__|
|___d7__|___d8__|___d9__|

D1-d9 tek bir tabloda ayırıcı ile mysql veritabanında saklanan verileri "," nerede olacağını.

Bana yardım ettiğin için teşekkürler.

3 Cevap

Sen patlayabilir () fonksiyonunu kullanarak bir diziye veri sütunundan virgülle ayrılmış değerler açabilirsiniz:

<?php
  $result = mysql_query('SELECT rows, columns, data from table_name where id=1');
  $record = mysql_fetch_assoc($result);

  $rows = $record['rows'];
  $columns = $record['columns'];

  $data = explode(',' , $record['data']);

  if (sizeof($data) != $rows * $columns) die('invalid data');
?>

Tablosunu görüntülemek için, için-döngüler iki iç içe gerekir:

<table>
<?php for ($row = 0; $row < $rows; $row++) : ?>
    <tr>
    <?php for ($column = 0; $column < $columns; $column++) : ?>
    	<td>
    		<?php echo $data[$row * $columns + $column]; ?>
    	</td>
    <?php endfor ?>
    </tr>
<?php endfor ?>
</table>

Bu, bu çok sorunu çözmeye yardımcı olmaz, ama iyi bir tavsiye: EVER bir veritabanı alanına virgülle ayrılmış değerler yazmak asla. Eğer mantıklı bu gibi saklanan bilgileri sorgulamak değil, ve uygulama kodu çirkin dönüşüm ile darmadağın olacak. Bunun yerine, değer başına ana tablo ve bir satır için bir referans ile ayrı tablo kullanın.

2 satır ve 3 sütun için o kullanıcı grubu tablo boyutunu varsayarak ve 6 hücre, veritabanına gidecek verilere ulasmak bazı girişi olacak yapar

2,3, d1, d2, d3, d4, d5, d6

Eğer hücreden veri almak ve getirilen dize patlayabilir yapacak zaman 8 elemanları ile 1 boyut dizi alacak

$ R = $ e [0] satırlar

$ C = $ e [1] cols

$ E [2-7] veri

  • wrtite acmadan < table> etiketi
  • İki döngü, başka bir,
  • İlki satırın başlaması için kod üretecektir
  • wrtite acmadan < tr> etiketi
  • biri içinde satır için kod genereate olacaktır.
  • açılış yazmak < td> etiketi
  • veri $ e yazmak [iç ve dış döngüler calulated 1 + pozisyon]
  • kapanış yazmak < td> etiketi
  • iç döngünün sonu
  • wrtite etiketi
  • dış döngünün sonu
  • wrtite etiketi

Size fikir vermek