masiw w tablica

5 отговора 321 прегледа
#1

masiw w tablica

Здравейте,

вадя стойности от mysql под формата на масив и ме интересува, ако имам една таблица от 2 реда и 2 колони например, как мога да визуализирам първия резултат в първото поле в първата колона, втория в първото поле втората колона, третия на втория ред първата колона и т.н. Предварително благодаря

P.S. може би този въпрос не е крайно подходящ за клуба, защото най-вероятно решението се свежда до HTML познания, но ще съм благодарен, ако някой ми помогне.

Отговор
в отговор на reflective #2

Re: masiw w tablica

Доколкото разбирам въпроса ти, всичко се свежда до визуализиране на едномерен масив (от резултати) в таблица с две (или n) колони. Ако не е така, кажи.

----
Свободната енциклопедия - сподели знанията си...
Отговор
в отговор на reflective #3

Re: masiw w tablica

Това е моя начин (обаче няма да се смеете много!)

Да приемем, че имаме таблица с книги. Взимаме информацията и я показваме на няколко реда, в две колони.

$q1 = "select * from books";
$r1 = mysql_query($q1) or die(mysql_error());

while($a1 = mysql_fetch_array($r1))
{
$ids[] = $a1[book_id];
$titles[] = $a1[book_title];
$authors[] = $a1[book_author];
$publishers[] = $a1[book_publisher];
$prices[] = $a1[book_price];
}

if(count($ids) > '0')
{
echo "<table align=center>\n";

for($i = '0'; $i < count($ids); $i+=2)
{
$one = $i + 0;
$two = $i + 1;

echo "<tr>\n\t";

echo "<td>";

echo $titles[$one]."< br >";
echo $authors[$one]."< br >";
echo $publishers[$one]."< br >";
echo $prices[$one]."< br >< br >";
echo "</td>";

if(!empty($ids[$two]))
{
echo "<td>";

echo $titles[$two]."< br >";
echo $authors[$two]."< br >";
echo $publishers[$two]."< br >";
echo $prices[$two]."< br >< br >";
echo "</td>";
}
else
{
echo "<td></td>\n";
}

echo "</tr>\n";
}

echo "</table>";
}

Отговор
в отговор на reflective #4

Re: masiw w tablica

До колкото съм рабрал въпроса ти, искаш с всеки нечетен резултат да започва нов ред в раблицата. Ако е така, да всичко е до опира до HTML.

Дефинирай си един counter, който да се увеличава с 1 след всеки fetch, и края на цикъла в който визуализираш записите (предполагам while) сложи проверка по делене на модул 2 (например) - там генерирай нов ред. С две думи нещо такова:

<?
...
echo "<table>";
echo "<tr>";
$count = 0;
while($row = mysql_fetch_array($r)){
echo "<td>" . $row["pole1"] . "</td>";
$count++;
if ($count%2 == 0)
echo "</tr><tr>";
}
echo "</tr>";
echo "</table>";
...
?>

Дано съм бил полезен.

Отговор
в отговор на reflective #5

Re: masiw w tablica

На тази функциика подаи резултата от куерито и масивче с имената на колоните. Пожелавам ти успех. Ако има нещо пиши пак. Масивче в ПХП наи лесно си правиш така $neshto_si=array(edin_element , drug_element , treti_element);
<?
function dysplay_result($query , $column_names)
{


$my_query = mysql_fetch_array($query);

if(count($column_names) != 0){


echo '<table align="center">';
echo '<tr>';


foreach($column_names as $element)
{

echo '<td>' . $element . '</td>';

}






echo '</tr>';



foreach($my_query as $row)
{
echo '<tr>';
echo '<td>' . $row . '</td>';
echo '</tr>';

}


echo '</table>';



}
else{


echo '<H1>Zabravil si da vuvedesh imenata na kolonite!';


}

}



?>

Отговор
в отговор на Uchesht #6

Re: masiw w tablica

Малко корекции - функцииката трябва да е ето така
<?
function dysplay_result( $query , $column_names)
{
$result=mysql_query($query);
$my_query =mysql_fetch_array($result);
if(count($column_names) != 0){
echo '<table align="center">';
echo '<tr>';
foreach($column_names as $element)
{
echo '<td>' . $element . '</td>';
}
echo '</tr>';
foreach($my_query as $row)
{
echo '<tr>';
echo '<td>' . $row . '</td>';
echo '</tr>';
}
echo '</table>';
}
else{
echo '<H1>Zabravil si da vuvedesh imenata na kolonite!';
}
mysql_free_result($result);
}
?>Успех !!

Отговор