Нов ред на цикъл

webdeveloper

Registered
Имам един while цикъл с, който си вадя записите от базата данни. Тези записи се изкарват в едно от <tr>-тата на една таблица. Проблема е, че когато се стигне края на полето вместо цикъла да продължи да екранира записите на нов ред, той се опитва да ги екранира върху другите.

Ето снимка:

dsayv.png


Както виждате последният запис част от него се продължава на нов ред но върху другите, а би трябвало след като не му стига мястото да се появи целият запис на нов ред с едно <br>.

Имате ли идеи как да разреша този проблем?
 
Какъв код да давам? Казах, че имам просто един обикновен цикъл... Какво да ти напиша?

while($dsada = mysql_fetch_array($query)) { }


Ето как ги изписвам:

echo "<a href='$url' class='list'>$dsada['name']</a>  ";


И това е в един от редовете на една таблица:

<table ..... >
<tr><td> Тука вадя записите </td></tr>
<tr><td> Тука някакви други неща </td></tr>
<tr><td> Тука някакви други неща </td></tr>
<tr><td> Тука някакви други неща </td></tr>
</table>
 
Хем търсите помощ, хем се правите на умни.

Исках да видя код, защото ми е интересно дали тази таблица е в цикъла, или е извън него. От това, което даде нищо не се разбра. Вадил по еди си какъв начин записите и ги слагал еди си къде, а не се разбира дали всъщност таблицата е в самия цикъл или не. Един бог + теб знае как си написал кода, че се е получило това, но ако още малко си скатаваш златния код, едва ли някой ще ти отговори като хората.
 
relax4o каза:
Хем търсите помощ, хем се правите на умни.

Исках да видя код, защото ми е интересно дали тази таблица е в цикъла, или е извън него. От това, което даде нищо не се разбра. Вадил по еди си какъв начин записите и ги слагал еди си къде, а не се разбира дали всъщност таблицата е в самия цикъл или не. Един бог + теб знае как си написал кода, че се е получило това, но ако още малко си скатаваш златния код, едва ли някой ще ти отговори като хората.
PHP:
$query = mysql_query("SELECT * FROM `tablica` where `iid`='$id' order by pole ASC");

echo '<table border=1';
echo '<tr>';
echo '<th></th>';
echo '</tr>';
while($row = mysql_fetch_assoc($query)){
	
echo '<tr>';
echo '<td>'.$row['pole'].'</td>';
}
echo '</table>';
 
DirectX каза:
PHP:
$query = mysql_query("SELECT * FROM `tablica` where `iid`='$id' order by pole ASC");

echo '<table border=1';
echo '<tr>';
echo '<th></th>';
echo '</tr>';
while($row = mysql_fetch_assoc($query)){
	
echo '<tr>';
echo '<td>'.$row['pole'].'</td>';
}
echo '</table>';

Като ще помагаш поне си оправи грешките
PHP:
echo '<table border=1';
и не си затворил <tr> тага..
и според мен няма нужда от това
PHP:
echo '<tr>';
echo '<th></th>';
echo '</tr>';
Ето как може да стане.
PHP:
$query = mysql_query("SELECT * FROM `tablica` where `iid`='$id' order by pole ASC");

echo '<table border=1'>;
while($row = mysql_fetch_assoc($query)){
echo '<tr>';
echo '<td>'.$row['pole'].'</td><td>'.$row['pole2'].'</td>';
echo '</tr>';
}
echo '</table>';
 
Не, не, не... Вадя резултатите в едно от td-тата на таблица.


<table>
<tr>
<td> <?php while($dsdsa = mysql_fetch_array($sql)) {

echo "<a href...... > $dsdsa['name'] </a>";

} ?> </td>

<td> Тука някви други неща </td>
<td> Тука някви други неща </td>
</tr>
</table>


Мисля, че не мога по-опростено да ви го обясня за това си напънете малко мозъчетата и помислете. :D
 
webdeveloper каза:
Не, не, не... Вадя резултатите в едно от td-тата на таблица.


<table>
<tr>
<td> <?php while($dsdsa = mysql_fetch_array($sql)) {

echo "<a href...... > $dsdsa['name'] </a>";

} ?> </td>

<td> Тука някви други неща </td>
<td> Тука някви други неща </td>
</tr>
</table>


Мисля, че не мога по-опростено да ви го обясня за това си напънете малко мозъчетата и помислете. :D

Какви стилове си слагал на таблицата? Предполагам си центрирал всичко, сложил си определена дължина и т.н. Защото така както си дал примера без никакви стилове проблем няма да има.

Няма да е лошо и стиловете на анчор тага да дадеш.
 
Код:
<table>
<tr>
<?php 
$i = 0;
while($dsdsa = mysql_fetch_array($sql)) {
echo "<td><a href...... > $dsdsa['name'] </a></td>";
if ($i % 3 ==0) { echo "</tr><tr>"; $i = 1; } 
else { $i++; } 
} ?> 
</tr>
</table>

Опитай нещо такова така на всеки 3 записа ще ти се прави ново <tr>
 
class='list'

[css].list {
background: #F5F5F5 repeat-x;
border: 1px solid #B3B9C4;
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 12px;
padding: 6px;
}

a.list:link, a.list:visited {
color: blue;
text-decoration: none;
}

.list:active, .list:hover {
border: 1px solid orange;
background: #F0D1D0;
}[/css]

Ето я таблицата:

<table cellpadding="4" cellspacing="1" border="0" width="100%">
 
Пробвай да сложиш едно <br /> в края на реда. Или пък във CSS задай display:block; или пък пробвай с вариантите на overflow
 
Върху тях е заради падинга и се разделя, защото има разстояния в текста.
Сега ще го измислим...


П.П. Има вариант да не се къса низа, но за падинга, ако искаш да не са едно върху друго го намали или направо го махни.

Иначе за да не се къса...

PHP:
while($row = mysql_fetch_assoc($result)){
     
         $links[] = "<a href=...>".$row['dasd']."</a>";

}

и таблицата си я правиш отделна

HTML:
<table ...>
   <tr>
      <td>
         <?php echo implode(" ", $links); ?>
      </td>
   </tr>
</table>

П.П.2. Остави си падинга и добави float: left; в .list класа, както и margin около 2px за всички страни.
 

Back
Горе