PHP+mysql - html таблица спешно

  • Автор Автор rix
  • Начална дата Начална дата

rix

Registered
Значи проблема е следния:
Правя таблица в която се извличат данни от mysql. Искам записите да се подреждат по 4 клетки на ред, обаче не мога да се справя нещо.
Алгоритъма ми е нещо подобно на следното:
<tr><td>'.$row['id'].'</tr></td>
където id е таблицата в mysql, а $row е
$result = mysql_query($query) or die('Error, query failed');
while($row = mysql_fetch_array($result))
и примерно ако има три записа, по този начин ги лист-ва на три реда от таблицата.

Тоест мога само да направя по 1 клетка на ред, сигурно трябва по някакъв начин да му задам 'при четири td прави нов tr" ако ме разбирате.

Като цяло идеята ми е примерно ако има 32 записа, да се лист-нат в таблица 4 клетки по 8 реда. И също ми трябва нещо универсално, а не за определен брой записи, т.е. не зависимо колко записа има да прави по 4 клетки на ред.

Благодаря много предварително, извинявам се за лошото обеснение!
 
Код:
<table border="1">
<tr>
	<?PHP
		$number = 17;
		for( $i=1; $i<=$number; $i++ ) {
			print '<td>'.$i.'</td>';
			if( $i%4 == 0 ) {
				print '</tr><tr>';
			}
		}
	?>
</tr>
</table>

Идеята е такава, просто е реализирах без употреба на база данни.
Промени for с твоя while. Ако имаш проблеми пиши и ще ги управим.
 
Виж така:
Код:
<table>
<tr>
	
	<? 
	$i = '1';
	$sql = mysql_query("SELECT * FROM table");//това ти е заявката
	while ($a =mysql_fetch_array($sql)){
		
		$zapis = $a['zapis'];
		echo "<td>$zapis</td>";
		$i++;
		if ($i == '4'){echo "</tr><tr>"; $i='1'; } //от тук като промениш 4-ката може да си промениш броя записи на един ред
	}
	?>
	
	
	
</tr>

</table>
 
Благодаря ви много, има още много хляб да ям тепърва и ако не сте вие.. страшно много мерси :)
 
Код:
<table  ><tr>
<?php
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result);

$pp=mysql_numrows($result);

for ($i=0; $i <$pp; $i++)

  {

echo"<td >";
echo $row['id'];

echo"</td>";

$j=$i-2;

if ($j%4 == "1")

     {

echo '</tr>';

	 } 

if ($j%4 == "1" && $i!=$pp-1)

     {

	     echo '<tr>';

	 }	
if ( $i==$pp-1)

     {
	     echo '</tr>';

	 }		 
	  	 
}

?>

</table>
 
виж така:
Код:
$a = array();
while(...)
{
  $a[] = true;
   if ( !intval(sizeof($a)/4))
   {
echo '</tr><tr>';
       unset($a);
       $a = array();
   }
echo '<td></td>';
}
имали смисъл от такива постове видя се че един даде пример как става не е нужно да се флоди за да се разбере колко метода има за тази цел
 
koychev каза:
Виж така:
Код:
<table>
<tr>
	
	<? 
	$i = '1';
	$sql = mysql_query("SELECT * FROM table");//това ти е заявката
	while ($a =mysql_fetch_array($sql)){
		
		$zapis = $a['zapis'];
		echo "<td>$zapis</td>";
		$i++;
		if ($i == '4'){echo "</tr><tr>"; $i='1'; } //от тук като промениш 4-ката може да си промениш броя записи на един ред
	}
	?>
	
	
	
</tr>

</table>

Другите кодове не работят както трябва, а този стана екстра, само че използвам и скрипт който ми прави записите на страници, т.е. сега ако има 50 записа съм му задал по 16 записа на страница и сигурно заради това ми ги прави по 3 клетки на ред, а не 4, но сложих i=5 и станаха по 4 и е екстра кода, мерси!!!


P.S. още един въпрос, знам че е за другия раздел(html) но така и така само това ми остана и си е по темата: Как да форматирам всяка клетка от редовете си да има определено зададено място, т.е. да се подредят по специфичен начин(както е форума например - всяка клетка има определено място напр колонка "заглавие на темата" колкото и голям текст да има не променя мястото на колонката "брой отговори") Та това е с цел примерно ако записите са всъщност картинки различни по-големина и дори да сложа cellpadding стават неподредени и халотични
 
Ами мисля,че трябва да сложиш един height и width,но не съм сигорен
 
<table>
<tr>
<td width="250">Заглавие на колона едно</td> //променяш си 250px на колкото си искаш
<td width="350">Заглавие на колона две</td>
<td width="150">Заглавие на колона 3</td>
.........
добавяш горните редове толкова пъти, колкото колони имаш.
</tr>
<tr>

<?
$i = '1';
$sql = mysql_query("SELECT * FROM table");//това ти е заявката
while ($a =mysql_fetch_array($sql)){

$zapis = $a['zapis'];
echo "<td>$zapis</td>";
$i++;
if ($i == '4'){echo "</tr><tr>"; $i='1'; } //от тук като промениш 4-ката може да си промениш броя записи на един ред
}
?>



</tr>

</table>
 

Back
Горе