Autor | Zpráva | ||
---|---|---|---|
tatyalien Profil |
#1 · Zasláno: 28. 11. 2010, 20:08:19
Dobrý den,
můžete mě nakopnout nějak... snazím se docílit něčeho podobného co je ve fagu "Výpis dnů v týdnu do tabulky seřazený dle abecedy do sloupců." Sloupec a | Sloupec B --------------------------- 1. Pondělí | 5. Pátek 2. Úterý | 6. Sobota 3. Středa | 7. Neděle 4. Čtvrtek | Z fagu mě to funguje, ale tam jsou id 1-7 přesně za sebou, mě ale jde o to, že u mě v tabulce může být id třeba 5,9, 90, 7, 6..., jde o to, že si data tahám z databáze (hodnoty id, sloupec) kde jsou data seřazené dle sloupce. A nějaké id můžou být "smazané". $VstupniData = array(1 => "a", 91 => "b", 6 => "c", 90 => "d", 5 => "e"); $sloupcu = 2; $pocetRadku = ceil(count($VstupniData) / $sloupcu); Kde by měla být tabulka cca: Kde by měl být výsledek Sloupec A | Sloupec B ---------------------------- 1 - a | 90 - d 91 - b | 5 - e 6 - c | Napadlo mě, že si data načtu do dvourozměrného, nebo třírozměrného pole $Pole[0][id][hodnota_sloupce], pak si můžu testovat dle scriptu ve fagu, jestli prvek pole existuje: echo "<table style='margin-left:-1px;' border='1'><tr><tr><th colspan='$sloupcu'>Výběr dat</th></tr><td>"; for ($i = 1; $i <= $pocetRadku; $i++) { echo "<tr>"; for ($j = 0; $j < $sloupcu; $j++) { // otestuji existenci hodnoty pole if (isset($VstupniData[$j * $pocetRadku + $i])) { // vypíšu hodnotu buňky } } echo "</tr>"; } echo "</td></tr></table>"; ale nevím jak pak z něj vymlátit hodnotu array.. nějk mě to nemyslí :( |
||
Alphard Profil |
#2 · Zasláno: 28. 11. 2010, 20:25:04
Script ve FAQ nepracuje s id, ale s klíčem pole (automaticky přiděleném v cyklu). Mělo by to fungovat bez jakýchkoliv změn, řazení použité na úrovni databáze není podstatné.
|
||
tatyalien Profil |
#3 · Zasláno: 28. 11. 2010, 20:28:46
No problém u mě je, že já data tahám do "checkboxů" kde jim dosazuji value id hodnotu z db, a popisku hodnotu z db (sloupce)...
|
||
Jostram Profil * |
#4 · Zasláno: 28. 11. 2010, 20:35:09
* Syntax elementu <table> máte špatně - <tr> je nadřazený <td>
* Máte tam <tr><tr> - taky chybka... * nějk mě to nemyslí - dejte si na chvíli oraz, to je to nejlepší, co můžete udělat. ;-) * Ano, nějaké ID může být smazané, ale na tom nesejde - "nasosněte" si ty data do pole od prvého - nějak takhle: while( $row == mysql_fetch_object($result) ) { // "přinést" všechny řádky z MySQL dotazu a vložit je do pole $vstupniData[] = array( 'id' => $row->id, 'sloupec' => $row->sloupec ); } array(3) { [0]=> array(2) { ["id"]=>int(1) ["sloupec"]=>string(3) "asd" } [1]=> array(2) { ["id"]=>int(20) ["sloupec"]=>string(3) "dfg" } [2]=> array(2) { ["id"]=>int(21) ["sloupec"]=>string(3) "fgh" } } Tohle by mělo vyřešit váš problém s poli. Dál už to pak vypíšete jako ve FAQu - spočítáte počet prvků, spočítáte tabulku (řádky/sloupce), vypíšete. |
||
tatyalien Profil |
#5 · Zasláno: 28. 11. 2010, 20:39:22
Jostram:
K tomuhle jsem se dostal taky... ale pak jsem nevěděl a stále nevím, jak vypíšu z vašeho příkladu: $vstupniData[0]... získat id 1, sloupec asd $vstupniData[1]... získat id 20, sloupec dfg Nahoře mám tu tabulku blbě jak píšete, jsem to zkopíroval už ze souboru, kde se patlám s hokusama pokusama :-D |
||
Jostram Profil * |
#6 · Zasláno: 28. 11. 2010, 20:42:20
tatyalien:
To, co jsem vám poslal je tzv. "asociativní pole". V prvním poli (index 0ú dostanete ty údaje takto: echo $vstupniData[0]["id"] . ' - ' .$vstupniData[0]["sloupec"]; |
||
tatyalien Profil |
#7 · Zasláno: 28. 11. 2010, 21:34:03
Oki díky, jen u:
while( $row == mysql_fetch_object($result) ) máš o jedno rovná se navíc... while( $row = mysql_fetch_object($result) ) Teď už se s tím poperu, díky ;)... ale budu pokračovat až druhý den ;) - únava ;) |
||
Jostram Profil * |
#8 · Zasláno: 28. 11. 2010, 21:35:29
tatyalien:
máš o jedno rovná se navíc... Pravda pravda. Omlouvám se, uteklo mi ale budu pokračovat až druhý den Však to je nejlepší :) |
||
tatyalien Profil |
#9 · Zasláno: 28. 11. 2010, 21:59:12
Kdyžtak výsledek:
$query = "SELECT id, hodnota FROM abc ORDER BY hodnota"; // odešlu dotaz do MYSQL $result = mysql_query($query); while( $row = mysql_fetch_object($result) ) { // "přinést" všechny řádky z MySQL dotazu a vložit je do pole $vstupniData[] = array( 'id' => $row->id, 'hodnota' => $row->hodnota ); } $sloupcu = 2; $pocetRadku = ceil(count($vstupniData) / $sloupcu); echo "<table style='margin-left:-1px;' border='1'><tr><th colspan='$sloupcu'>vypsání</th></tr>"; for ($i = 0; $i <= ($pocetRadku-1); $i++) { echo "<tr>"; for ($j = 0; $j < $sloupcu; $j++) { if (isset($vstupniData[$j * $pocetRadku + $i])) { echo "<td>" . $vstupniData[$j * $pocetRadku + $i]["id"] . ' - ' .$vstupniData[$j * $pocetRadku + $i]["hodnota"]. "</td>"; } else { echo "<td> </td>"; } } echo "</tr>"; } echo "</table>"; |
||
Časová prodleva: 13 let
|
0