Autor | Zpráva | ||
---|---|---|---|
rhintin Profil |
#1 · Zasláno: 4. 9. 2008, 14:29:39 · Upravil/a: rhintin
zdravim potřebuju poradit jak udělám vypis u databáze kde mám dve tabulky jedna jsou "sekce" kde mám nadpisy sekcí ceníku ty maj přiřazenou id 1 až 4 pak mám druhou tabulku "cenik" kde mám 18 položek "descr" s cenama "price" položky maj id přířazenou přseně podel toho jak maj jít na stráce zasebou od 1 do 18. a maj přiřazenej "Sect" od 1 do 4 podle toho ke kterýmu nadpisu v tabulce "sekce" patřej jak jsem psal nahoře.
a potřeboval bych script kterej by to vypsal na stránku ve znění: <table class="cenik"> <tr><td><h1>nadpis sekce ceniku</h1></td></tr> <tr><td class="levy">Položka v ceniku</td> <td class="pravy"><b>Cena Položky ceniku</b></td></tr> <tr><td><p>info</p></td></tr> </table> poradi mi někdo prosim. |
||
trinitrochleba Profil * |
#2 · Zasláno: 4. 9. 2008, 14:38:36
já teda nevim, zkus sem hodit schéme těch tabulek, moc to z tvýho popisu nechápu
|
||
peta Profil |
#3 · Zasláno: 4. 9. 2008, 14:40:58
rhintin
to je presne pripad dotazu, mam jablicko a chci, aby jste mi z nej udelali hrusku. Jsem linej, pracujte za mne se to jmenuje forum Prace a zakazky. cz.php.net/mysq_query Pokud to vytahnes vse do jednoho SQL dotazu, tak se to da zobrazit snadneji. Pokud do 2, mno, tak hold je to vic prace pres ruzne switch, in_array a pod |
||
rhintin Profil |
#4 · Zasláno: 4. 9. 2008, 14:47:48 · Upravil/a: rhintin
a co tedy potřebujete vidět neni problém, jinak já php nerozumim akorát tabulkám trochu, tak promintě že se ptám blbě:)
výpis tabulek sql SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Databáze: `tsde` -- -- -------------------------------------------------------- -- -- Struktura tabulky `cenik` -- CREATE TABLE IF NOT EXISTS `cenik` ( `ID` int(11) NOT NULL auto_increment, `Descr` varbinary(100) NOT NULL default '', `Sect` int(11) NOT NULL default '0', `Price` varbinary(30) NOT NULL default '', PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0 AUTO_INCREMENT=61 ; -- -- Vypisuji data pro tabulku `cenik` -- INSERT INTO `cenik` (`ID`, `Descr`, `Sect`, `Price`) VALUES (1, '1.2 TDI, 1.4 TDI, 1.9 TDI, 2.5 TDI Audi, SEAT, ŠKODA, VW', 0, '300,- €'), (2, 'Audi, ŠKODA, VW 2.5 V6 TDI 155, 163 a 180 PS', 1, '380,- €'), (3, 'Alle andere Turbodiesel (HDI, JTD, CDI, TDS, DTI, DCI, CRDI usw.) 3 und 4 Zylinder', 1, '330,- €'), (4, ' Alle andere Turbodiesel (HDI, JTD, CDI, TDS, DTI, DCI, CRDI usw.) 5 und 6 Zylinder', 1, '470,- €'), (5, 'VW 2.0 16V TDI und andere Motoren mit dem Steuergerät EDC 16', 1, '500,- €'), (6, 'VW Touareg V10 TDI', 1, '800,- €'), (7, 'VW 1.8 T und andere Turbobenziner', 1, '470,- €'), (8, 'Škoda Octavia und Fabia 1.4 MPI', 2, '130,- €'), (16, 'TV Freischaltung', 3, 'Auf Anfrage'), (17, 'Kontrolle', 4, '10,- €'), (18, 'Klimanachfüllung', 4, '40,- (35,-) €'), (15, 'Dekodierung, alle Modelle', 3, '20,- (15,-) €'), (9, 'Tacho VW, SEAT, Škoda, Galaxy (alle Modelle, alle Baujahre)', 2, '33,- (27,-) €'), (10, 'PopisTacho mit EEPROM', 2, '50,- (33,-) €'), (11, 'Tacho mit Prozessor', 2, '85,- (75,-) €'), (12, 'Tachos mit NEC', 2, '65,- (50,-) €'), (13, 'Pixelreparaturen', 2, '120,- (100,-) €'), (14, 'Sondertachos (BMW E60/61/65, neue Mercedes usw.) Bitte anfragen', 2, '70,- (60,-) €'); -- -------------------------------------------------------- -- -- Struktura tabulky `sekce` -- CREATE TABLE IF NOT EXISTS `sekce` ( `ID` int(11) NOT NULL auto_increment, `Title` varchar(40) collate utf8_bin NOT NULL default '', `Info` blob NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin PACK_KEYS=0 AUTO_INCREMENT=21 ; -- -- Vypisuji data pro tabulku `sekce` -- INSERT INTO `sekce` (`ID`, `Title`, `Info`) VALUES (1, 'prieselist chiptuning', 0x46c3bc72206469652042657369747a657220766f6e204b756e64656e6b617274656e 20676962742065732065696e652045726dc3a473736967756e6720766f6e203130252e 204265692064656e206d6568726572656e20466168727a657567656e20676c65696368 7a65697469672067696274206573206e6f63682065696e656e20536f6e646572726162 6174742e21), (2, 'preisliste tachojustierung', 0x4469652050726569736520696e2064656e204b6c616d6d65726e2067656c74656e20 66c3bc7220646965204b756e64656e206d69742064657220726f74656e204b756e6465 6e6b617274652e446965204b756e64656e206d69742064657220626c6175656e204b61 72746520686162656e207465696c7765697365206e6f63682062657373657265205072 656973652e20416c6c6520496e666f20c3bc62657220496872656d20546163686f2028 6f62206573207369636820756d2065696e20454550524f4d206f6465722050726f7a65 73736f7220546163686f2068616e64656c742920657266726167656e20536965206569 6e666163682062656920756e732e), (3, 'preisliste k radios, navi und tv', 0x4469652050726569736520696e2064656e204b6c616d6d65726e2067656c74656e20 66c3bc7220646965204b756e64656e206d69742064657220726f74656e204b756e6465 6e6b617274652e446965204b756e64656e206d69742064657220626c6175656e204b61 72746520686162656e207465696c7765697365206e6f63682062657373657265205072 656973652e5769722066696e64656e20436f64652066c3bc722039392c392025205261 64696f73206175662064656d204d61726b742e), (4, 'preisliste klimaanlagen', 0x4469652050726569736520696e2064656e204b6c616d6d65726e2067656c74656e2066c3bc7220646965204b756e64656e206d69742064657220726f74656e204b756e64656e6b617274652e20446965204b756e64656e206d69742064657220626c6175656e204b6172746520686162656e207465696c7765697365206e6f6368206265737365726520507265697365); |
||
nightfish Profil |
#5 · Zasláno: 4. 9. 2008, 14:59:07
rhintin
ještě pošli odkaz na stránku, jak má vypadat výsledek udělat to půjde, cena 400 Kč, kontakt mám v profilu |
||
papoušek Profil * |
#6 · Zasláno: 4. 9. 2008, 16:49:16
No, dotaz je takový dost neurčitý a hodně obecný. Obecně platí, že pokud se do něčeho pouštíš, měl by sis to prvně nastudovat sám a ptát se na konkrétní problémy.
Na druhou stranu účtovat si za to 400.... Myslím, že výsledný script by mohl vypadat nějak takto, ale napsal jsem to narychlo: function getBySection($id) { if (gettype($id) == "integer") { $sql = "SELECT * FROM cenik WHERE Sect = $id"; $res = mysql_query($sql) or die("Chyba v dotazu v souboru ".__FILE__." na radku ".__LINE__); return $res; } else { return FALSE; } } function getSection($id) { if (gettype($id) == "integer") { $sql = "SELET * FROM sekce WHERE ID = $id"; $res = mysql_query($sql) or die("Chyba v dotazu v souboru ".__FILE__." na radku ".__LINE__); return mysql_fetch_array($res); } else { return FALSE; } } $section = getSection($_GET["section"]); echo "<table>"; echo "<tr><td><h1>".$section["Title"]."</h1></td></tr>"; $res = getBySection($_GET["section"]); while ($price = mysql_fetch_array($res)) { echo " <tr> <td class=\"levy\">".$price["ID"]."</td> <td clas=\"pravy\"><b>".$price["Price"]."</b></td> </tr> <tr> <td><p>".$price["Descr"]."</p></td> </tr>"; } echo "</table>"; |
||
rhintin Profil |
#7 · Zasláno: 4. 9. 2008, 20:39:51 · Upravil/a: rhintin
tak už jsem to dal sám nějak dohromady a funguje skvěle
Takto: <?php include "../../sqlcon.inc"; $qs = "SELECT * FROM sekce"; $rs = mysql_query($qs) or die ("Nepovedlo se vykonat dotaz: $qs"); $i=1; // title id while ($sekce=mysql_fetch_row($rs)) { echo "<table class=\"cenik\">\n"; echo "<tr><td><h1>"; echo $sekce[1]; echo "</h1></td></tr>\n"; $q= "SELECT * FROM cenik WHERE Sect=".$sekce[0]; $r = mysql_query($q) or die ("Nepovedlo se vykonat dotaz: $q"); while ($item=mysql_fetch_row($r)) { echo "<tr><td class=\"levy\" name=\"descr_".$item[0]."\">"; echo $item[1]; echo "</td><td class=\"pravy\" name=\"price_".$item[0]."\"><b>"; echo $item[3]; echo "</b></td></tr>\n"; } echo "<tr><td><br><p name=\"info_$i\">"; echo $sekce[2]; echo "</p></td></tr>\n"; echo "</table>\n\n"; $i++; } mysql_free_result($r); ?> |
||
BetaCam Profil |
#8 · Zasláno: 5. 9. 2008, 01:11:52
papoušek
„No, dotaz je takový dost neurčitý a hodně obecný. Obecně platí, že pokud se do něčeho pouštíš, měl by sis to prvně nastudovat sám a ptát se na konkrétní problémy. Na druhou stranu účtovat si za to 400....“ Asi sem taky divnej, ale většinou si za práci něco účtuju a dělám to tak v podstatě celej život. Prostě mě nějak nebaví chodit po louce a živit se kořínkama. Navíc 400 Kč je v podstatě nic ve srovnání co za ceny je uvedeno v sql dumpu. :) |
||
Časová prodleva: 16 let
|
0