2013-05-16 5 views
0

Я пытаюсь создать очень простую таблицу с данными из базы данных. В таблице есть две строки с тремя частями данных в каждом (три столбца). Я играл уже пару часов, но не могу обойти его. Я понимаю, что $ row ['BandName'] должен быть индексируется и увеличивается каждый раз, когда цикл обходит, но не знает, как привязать к нему индекс. Я пытался что-то вроде этого: $row['BandName'][$i] но отображается только одна буква полного имени (очевидно, что это не так) Любая помощь будет признателен ..Показать данные из базы данных в таблицу

таблица выглядит следующим образом:

include 'db_constants.php'; 
$conn = sqlsrv_connect($host, $cnct); 
if($conn == false) 
    { 
     echo "Could not connect.\n"; 
     die(print_r(sqlsrv_errors(), true)); 
    } 
else 
$tsql = "SELECT * FROM bands"; 
$stmt = sqlsrv_query($conn, $tsql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET)); 
if($stmt === false) 
    { 
     echo "Error in query preparation/execution.\n"; 
     die(print_r(sqlsrv_errors(), true)); 
    } 
else 
    { 
     $recordcount = sqlsrv_num_rows($stmt);//count the records 
     if($recordcount >0) 
     while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) 
     { ?> 



      <TR> 
    <TABLE border="3" cellspacing="5" cellpadding="5"> 

     <?php for($i=0; $i<3; $i++) {?> 
     <TD align="center" valign="top"> 
      <table border="0" cellspacing="2" cellpadding="0"> 
      <tr align="center"> 
        <td valign="bottom"><a href="details.php" target="_self"><img src="band/1.jpg" width="140" height="110" border="0"></a></td> 
      </tr> 
      <tr align="center"> 
     <td class="greytablesm"> <?php echo $row['BandName'];?></td> 
      </tr> 
     </table> 
    </TD> 
    <?php }?> 
    <TR> 
      <?php } 
    else {echo "not found";} 
    } 
     ?> 

структура таблицы

BandID - int autoincrement 
BandName - nvarchar(50) 
BandBio - nvarchar(max) 
Date - date 



START TABLE <table> 
    loop from 1 to 2 
     <tr> 
      loop from 1 to 2 
      <td> 
       Show Details 
      </td> 
     end loop 
     </tr> 
    end loop 
END TABLE </table> 
+0

Любой, пожалуйста ...? –

ответ

1

Наконец-то сделано. и испытаны

<table border="3" cellspacing="5" cellpadding="5"> 

      <?php 
      $sql = "select * from deals"; 
    $res = mysql_query($sql); 
    $num_rows = mysql_num_rows($res); 

    if($num_rows > 0) 
    { 
     $i = 1; 
     echo "<tr>"; 
     while($row = mysql_fetch_object($res)) 
     { 
    ?> 
       <td><?php echo $row->deal_name ?> </td> 
       <?php 
    if($i++%3 == 0) 
    echo "</tr><tr>"; 
       } 
echo "</tr>"; 
    } 
      ?> 
+0

..Но это создало бы одну колонка. Мне нужно что-то вроде: row1 - | name1 | name2 | name3 | row2 - | name4 | name5 | name6 | –

+0

Ближайшим, что я могу получить, является row1 - | name1 | name1 | name1 | row2 - | name2 | name2 | name2 | –

+0

Я ищу что-то вроде миниатюр –

3

вы хотите, чтобы ваши данные базы данных в таблицу ?:

<TABLE border="3" cellspacing="5" cellpadding="5"> 
<?php 
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) //loop through every result set 
{ ?> 
    <TR> 
    <?php foreach($row as $item) { //loop trough every cell in the row ?> 
    <TD><?= $item ?> </TD> 
    <?php } ?> 
    <TD><?php //you can add none column spefic data here like actions(links) or images ?> </TD> 
    <TR> 
    <?php 
    } 
?> 
+0

есть. но должно быть только три столбца ... –

+0

Заметьте, вы не должны использовать таблицы для макета, только для хранения данных. –

+0

просто измените свой sql-запрос, чтобы получить только 3 столбца, которые вы хотите. –