superKrona Posted November 6, 2008 Report Posted November 6, 2008 Glabāju attēlus bināri iekš MySQL (sāku to nožēlot) Problēma ir ar vairāku bilžu + citas infas attēlošanu. Respektīvi, jāpadod divi headeri - viens bildei "Content-type: image/jpeg", viens tekstam content="text/html" Katru bildi attēlo lapā caur jocīgu linku, piemēram: <img src=?id=1> Dēļ tā nākas taisīt divus selectus, pie kam viens ar ciklu konkrētai bildei, otrs pārējai tekstuālajai infai. Rezultātā tas viss strādā OK, bet izskatās kods briesmīgi, tāpēc jautājums: vai kāds nezin kādu sakarīgāku risinājumu, kādu linku, varbūt es kaut ko caur Ž... daru? Googlē visa infa ir tikai vienas bildes izvilkšanai, no kā es tad arī samocīju daudzu bilžu izvilkšanu.
andrisp Posted November 6, 2008 Report Posted November 6, 2008 Dēļ tā nākas taisīt divus selectus, pie kam viens ar ciklu konkrētai bildei, otrs pārējai tekstuālajai infai. Ar ciklu ? Tas ir kā ?
superKrona Posted November 6, 2008 Author Report Posted November 6, 2008 (edited) Nu tā katrai bildei: function PrintImageFromDataBase($bilde){ header ("Content-type: image/jpeg"); $result = @mysql_query("select * from pic"); $num_rows = mysql_numrows($result); if(!$result || ($num_rows < 0)){ echo "Kļūda rādot informāciju"; return; } if($num_rows == 0){ echo "DB tabula tukša"; return; } $bildex = $bilde - 1; $resultx = @mysql_query("select * from pic LIMIT $bildex,$bilde"); if ($row = @mysql_fetch_assoc($resultx)) { $bytes[$bilde] = $row['pic']; } print $bytes[$bilde]; } if (isset($bilde)) { $bilde = $_GET['bilde']; ConectToDB(); PrintImageFromDataBase($bilde); } Edited November 6, 2008 by superKrona
andrisp Posted November 6, 2008 Report Posted November 6, 2008 Vaii.. kaut ko tādu redzu pirmo reizi, no offence :] Kāpēc neizmanto vienkārši ID ? Un kāpēc selektē visu lērumu datus no tabulas, tikai lai pārbaudītu vai tajā kaut kas ir ?
superKrona Posted November 6, 2008 Author Report Posted November 6, 2008 (edited) Nu nepiesienies sīkumiem * = pic. Id vietā limit, tāpēc, vajag visas bildes nevis vienu konkrētu, bet nezinu, kāds id, jo bildes tiek dzēstas arī, pēc tam pie id tiek piesieti titles, komenti utt. draza. Jau iepriekš teicu, kods izskatās briesmīgi pat priekš manis, sirdsapziņa neļauj kaut ko tādu atstāt. Prasu padomu, kā no db izdabot ārā visas bildes kopā ar tekstiem sakarīgāk, vienkāršāk? Visa problēma man škiet tas headeris priekš bildes. Edited November 6, 2008 by superKrona
codez Posted November 6, 2008 Report Posted November 6, 2008 Tu vienā pieprasījumā tā vai tā vairāk par 1 bildi izvadīt nevari.
superKrona Posted November 6, 2008 Author Report Posted November 6, 2008 (edited) Nu vienā pieprasījumā gribējās sakraut visas viņas iekš array un pāc tam kaut kā attēlot, bet dēļ tā sasodītā print kopā ar header nekas man nesanāk Nu it kā izmetu visu lieko ārā un pielaboju, ko var: http://paste.php.lv/8323?lang=php Laikam tā arī būs jāpaliek. Edited November 6, 2008 by superKrona
rpr Posted November 6, 2008 Report Posted November 6, 2008 shitais ir labais!: if (isset($id)) { $id = $_GET['id']; nu es piemeeram bildi izvadu atsevishkjaa failaa. tad vienkaarshi uzliek <img src="bilde.php?id=3" /> vieniigi probleemas ir ar keshoshanu.
rpr Posted November 6, 2008 Report Posted November 6, 2008 (edited) uztaisi atsevishkju failu: $resultx = @mysql_query("select pic from pic WHERE id=" . intval($_GET["id"]) . ";"); $row = @mysql_fetch_assoc($resultx); header ("Content-type: image/jpeg"); print $row['pic']; Edited November 6, 2008 by rpr
rpr Posted November 6, 2008 Report Posted November 6, 2008 nafig visur liec @ ? buus kljuuda, pac peec tam nesapratiisi kuraa vietaa.
superKrona Posted November 6, 2008 Author Report Posted November 6, 2008 Rezultātā tas pats droši vien, bet liels paldies.
Recommended Posts