ugrás a tartalomhoz

mysql adatbázis sorok mezőinek táblázatba rendezése php

tthtbr · 2009. Feb. 15. (V), 13.17
Sziasztok!

Mysql adatbázisból jönnek ki adatok, amik az alábbi php táblába kerülnek. Jelenleg a php tábla egy sorában 2 sql sor jelenik meg.
Eddik ok!
A gondom az, hogy az sql mezők nem egymás alatt kerülnek kiírásra,
hanem sorban.
Mit kell átírnom, hogy a mezők egymás alá krüljenek?

Pl. így.

| sql_sor1 | | sql_sor2 |
------------ ------------
| mezo1 | | mezo1 |
------------ ------------
| mezo2 | | mezo2 |
------------ ------------
| stb | | stb |
------------ ------------

A jelenlegi forrás:

$szamol = 1;

while($sor = mysql_fetch_array($eredmeny)) {

$akarmi1 = $sor["akarmi1"];
$akarmi2 = $sor["akarmi2"];
$akarmi3 = $sor["akarmi3"];
$akarmi4 = $sor["akarmi4"];
$akarmi5 = $sor["akarmi5"];
$akarmi6 = $sor["akarmi6"];
$akarmi7 = $sor["akarmi7"];
$akarmi8 = $sor["akarmi8"];

// hogy hány oszlop legyen...
if ($szamol>2) {
$adat.="
<tr></tr>

";

$szamol=1;
}

$adat .= "

<td>$akarmi1</td>
<td>$akarmi2</td>
<td>$akarmi3</td>
<td>$akarmi4</td>
<td>$akarmi5</td>
<td>$akarmi6</td>
<td>$akarmi7</td>
<td>$akarmi8</td>

";

$szamol++;
}

$html = "
<table border='1' width='400'>
<tr>
$adat
</tr>
</table>
";

print $html;

?>

Most valahogy így néz ki:

sql_sor1 | mezo1 | mezo2 | stb || sql_sor2 | mezo1 | mezo2 | stb |
sql_sor3 | mezo1 | mezo2 | stb || sql_sor4 | mezo1 | mezo2 | stb |
stb.

Ha tudtok segítsetek!
Üdv:
TT.
 
1

Így nem fog menni

Iggy · 2009. Feb. 15. (V), 18.08
Ha jól értem, hogy mit szeretnél, azt így nehezen fogod tudni megcsinálni. Eleve furcsának tűnik a kód,
// hogy hány oszlop legyen...
if ($szamol>2) {
$adat.="
<tr></tr>

";

ez a rész úgy tűnik, üres TR tageket csinál, aminek nemtudom, hogy mi lenne az érteleme, valamint a TD tagek nem lesznek TRen belül, ez így nem túl szabványos. A komment alapján és ahogy használod, te szerintem kevered a TR - table row és TD table data tagek jelentését, a TR a sor, a TD a cella.
Ahhoz, hogy két sql sort tudj egymás mellé kiírni, kettesével kéne őket kezelni. Egy javaslat, nem próbáltam ki a kódot, csak ránézésre:
while($sor = mysql_fetch_array($eredmeny)) {

$akarmi1[0] = $sor["akarmi1"];
$akarmi2[0] = $sor["akarmi2"];
$akarmi3[0] = $sor["akarmi3"];
$akarmi4[0] = $sor["akarmi4"];
$akarmi5[0] = $sor["akarmi5"];
$akarmi6[0] = $sor["akarmi6"];
$akarmi7[0] = $sor["akarmi7"];
$akarmi8[0] = $sor["akarmi8"];

if($sor = mysql_fetch_array($eredmeny)){
$akarmi1[1] = $sor["akarmi1"];
$akarmi2[1] = $sor["akarmi2"];
$akarmi3[1] = $sor["akarmi3"];
$akarmi4[1] = $sor["akarmi4"];
$akarmi5[1] = $sor["akarmi5"];
$akarmi6[1] = $sor["akarmi6"];
$akarmi7[1] = $sor["akarmi7"];
$akarmi8[1] = $sor["akarmi8"];
}

$adat .= "
<tr>
<td>$akarmi1[0]</td><td>$akarmi1[1]</td>
</tr>
<tr>
<td>$akarmi2[0]</td><td>$akarmi2[1]</td>
</tr>
.
.
.
<tr>
<td>$akarmi8[0]</td><td>$akarmi8[1]</td>
</tr>
";
}

$html = "
<table border='1' width='400'>
$adat
</table>
";

print $html;

?>

Ha páratlan számú sorod van, arra valószínűleg a legutolsót rosszúl írja ki, de azt már oldd meg. Ennek szerintem működnie kéne.
2

Köszönöm

tthtbr · 2009. Feb. 15. (V), 19.31
Köszi szépen!
Valóban működik. A gond csak az (mint írtad is), ha páratlan sorom van, akkor az utolsót megduplázza.

Ezen kívül kapok egy hibaüzenetet is.
Notice: Undefined variable: adat in D:\webserver\index3.php on line 70
Valahogy remélem meg tudom oldani.

Üdv:
TT
3

Megy a fenti kóddal is.

tthtbr · 2009. Feb. 15. (V), 19.50
Mint írtam csak az a baja, hogy a mezőket sorba listázza ki.

SQL_sor1 | mezo1 | mezo2 | stb || SQL_sor2 | mezo1 | mezo2 | stb |
SQL_sor3 | mezo1 | mezo2 | stb || SQL_sor4 | mezo1 | mezo2 | stb |
4

soronkénti adat egy tábla cellában

RyTec · 2012. Május. 18. (P), 11.24
Sziasztok!

akár azt is megoldhatjuk hogy egy sor adatait egy bizonyos cellában írjuk ki.
példának okáért a kód:

$parancs = "SELECT * FROM `adminr_Users` WHERE `Active` =1 ORDER BY `adminr_Users`.`Username` ASC
LIMIT 0 , 30";
$eredmeny = mysql_query($parancs);
while($sor = mysql_fetch_array($eredmeny)) {

$user1[0] = $sor["Username"];
$mkep1[0] = $sor["adaskep"];
if($sor = mysql_fetch_array($eredmeny)){
$user1[1] = $sor["Username"];
$mkep1[1] = $sor["adaskep"];
}
if($sor = mysql_fetch_array($eredmeny)){
$user1[2] = $sor["Username"];
$mkep1[2] = $sor["adaskep"];
}
if($sor = mysql_fetch_array($eredmeny)){
$user1[3] = $sor["Username"];
$mkep1[3] = $sor["adaskep"];
}
$adat .="
<tr>
<td><a href='http://citromradio.hu/R_prof.php?ki=".$sor['User_ID']."'><img src='musorvezetok/".$mkep1[0]."' /><br>".$user1[0]."</a></td>
<td><a href='http://citromradio.hu/R_prof.php?ki=".$sor['User_ID']."'><img src='musorvezetok/".$mkep1[1]."' /><br>".$user1[1]."</a></td>
<td><a href='http://citromradio.hu/R_prof.php?ki=".$sor['User_ID']."'><img src='musorvezetok/".$mkep1[2]."' /><br>".$user1[2]."</a></td>
<td><a href='http://citromradio.hu/R_prof.php?ki=".$sor['User_ID']."'><img src='musorvezetok/".$mkep1[3]."' /><br>".$user1[3]."</a></td>
</tr>";
}
echo $s1;
$html = "
<table border='0' width='550'>\n".$adat."\n
</table>";

print $html;
5

Néhány módosítással

hNczy · 2012. Május. 18. (P), 16.19
Néhány módosítással én valahogy így próbálkoznék:
<?php
// Az oszlopok számát kiteszem egy állandóba
!defined('MAX_OSZLOPOK_SZAMA') ? define('MAX_OSZLOPOK_SZAMA', 2) : null;

// A mezőneveket egy külön tömbbe mentem, hogy ha módosul a tábla szerkezet, 
// csak egy helyen kelljen módosítani a kódban
$mezok = array(
	'akarmi1',
	'akarmi2',
	'akarmi3',
	'akarmi4',
	'akarmi5',
	'akarmi6',
	'akarmi7',
	'akarmi8'
);

// kiolvassa az adatokat és eltárolja, hogy aztán oszloponként is ki lehessen olvasni
$tabla = array();
$i = 0;
while($sor = mysql_fetch_array($eredmeny)) {
	foreach ($mezok as $mezo) {
		$tabla[$i][$mezo] = $sor[$mezo];
	}
	$i++;
}
unset($i);

?>
<!-- html generálása -->
<table border='1' width='400'>
<?php for ($sor = 0; $sor < count($tabla); $sor += MAX_OSZLOPOK_SZAMA): ?>
	<?php foreach ($mezok as $mezo): ?>
		<tr>
		<?php for ($i = 0; $i < MAX_OSZLOPOK_SZAMA; $i++): ?>
			<?php if (isset($tabla[$sor])): ?>
				<td><?php echo $tabla[$sor + $i][$mezo]; ?></td>
			<?php else: ?>
				<td></td>
			<?php endif; ?>
		<?php endfor; ?>
		</tr>
	<?php endforeach; ?>
<?php endfor; ?>
</table>
6

Múmia

Arnold Layne · 2012. Május. 18. (P), 22.33
De azt ugye látjátok, hogy a kérdést mikor tették fel?
7

Régész

hNczy · 2012. Május. 18. (P), 23.33
A múmiák rég halottak, mégis sokakat foglalkoztat az egyiptomi kúltúra. Ki tudja hogy évezredek múlva ki veszi majd elő a weblabor fórumait és kezdi el tanulmányozni?
Vagy ennyire rossz a kód amit írtam? :)
8

Off:

Pepita · 2012. Május. 19. (Szo), 11.15
Én úgy látom, hogy a mai ember fia képtelen olyan maradandót alkotni, ami akár csak 100 év múlva is érdekelne valakit.