php + mysql + span

Programovacie jazyky, rady, poradňa...
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

php + mysql + span

Príspevok od používateľa refr0 »

caute ako by sa dalo spravit to ze ked zapisem do DB niaky nazov a chcem aby sa prve pismeno vzdi obalilo do <span></span> ? je jedno ci sa to obali uz zapisane do DB alebo sa to nacita spracuje a potom zobrazi.. len nech to na str vzdi zobrazi ako napr <span class="green">N</span>azov .. ak by nieco niekdo vedel tak by mi fakt pomohol..
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Nestačí ti niečo takéto?

Kód: Vybrať všetko

<html>
<head>
<style>
.nazov:first-letter {
	color: green;
}
</style>
</head>
<body>
<h1 class="nazov">Toto je nazov</h1>
</body>
</html>
(a teda zmena vzhľadu iba pomocou CSS)
badluck
Amateur
Amateur
Používateľov profilový obrázok
Príspevky: 29
Registrovaný: 18 jún 2006, 18:56

Príspevok od používateľa badluck »

bud tak alebo kludne uloz do databazy aj html tagy
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

jj dik je to super.. len skoda ze to nejde aj ked dam napr P. O. team ta bodka..
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Tak potom nepotrebuješ zmeniť vzhľad prvého písmena (tých písmen môže byť rôzny počet). V takom prípade asi jednoduché riešenie neexistuje.
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

j uz som si to uvedomil..ale tyka sa to len tej bodky..
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kód: Vybrať všetko

function upravPrvyZnak($s, $c="first_char")
{
        if (preg_match("/(.[.]?)(.*)/", $s, $matches) > 0) {
                return '<span class="' . $c . '">' . $matches[1] . '</span>' . $matches[2];
        } else {
                return "";
        }
        return print_r($matches, true);
        return substr($s, 1);
}

echo upravPrvyZnak("Nazov"), "<br>";
echo upravPrvyZnak("P.. O. team", "green"), "<br>";
echo upravPrvyZnak(""), "<br>";
Prípadne sa to dá urobiť aj bez regexp.
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

mno len by ma ete zaujimalo ako

Kód: Vybrať všetko

return '<span style="color:blue;">' . $matches[1] . '</span>' . $matches[2]; 
hodim do premennej $nadpis_
jurko.info
Medium Expert
Medium Expert
Príspevky: 108
Registrovaný: 22 nov 2006, 0:16
Kontaktovať používateľa:

Príspevok od používateľa jurko.info »

Kód: Vybrať všetko

mno len by ma ete zaujimalo ako
[code]
return '<span style="color:blue;">' . $matches[1] . '</span>' . $matches[2];
hodim do premennej $nadpis_
[/code]

"return" funkcie jednoducho priradíš ako hodnotu premennej

Kód: Vybrať všetko

$nadpis_ = upravPrvyZnak($s, $c="first_char");
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

(Takmer) Presne tak, ako píše jurko.info. :)

Kód: Vybrať všetko

$nadpis = upravPrvyZnak("P.. O. team", "green");
Samozrejme ten prvý parameter bude vyzerať pravdepodobne inak (napr. $row['nazov']), ale to záleží od toho, ako presne máš ten skript urobený.
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

Fatal error: Cannot redeclare upravprvyznak() (previously declared in C:\xampp\htdocs\exoomer\referencie.php:75) in C:\xampp\htdocs\exoomer\referencie.php on line 75 hmm cudna chyba
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Máš tam dva krát rovnakú funkciu, ale bolo by asi lepšie, keby si sem dal ten skript.
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

to asi koli tomu ze jak to vytahujem z DB tak tam mam while a mam to v tom ... a kod klasika...

Kód: Vybrať všetko

$result=mysql_query("SELECT * from referencie order by ID ASC");
while ($row=mysql_fetch_array($result)) {
$nazov=$row[nazov];

function upravPrvyZnak($s)
{
        if (preg_match("/(.[.]?)(.*)/", $s, $matches) > 0) {
                return '<span class="green">' . $matches[1] . '</span>' . $matches[2] . '';
        } else {
                return "";
        }
        return print_r($matches, true);
        return substr($s, 1);
}

$nazov1 = upravPrvyZnak("$nazov");

echo "<div class=\"image2\">$obrazok</div>
        <h1>$nazov1</h1>";}
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Z tej funkcie môžeš vymazať

Kód: Vybrať všetko

return print_r($matches, true); 
return substr($s, 1);
(ja som to vymazať zabudol)

Ďalej môžeš zmeniť

Kód: Vybrať všetko

upravPrvyZnak("$nazov");
na

Kód: Vybrať všetko

upravPrvyZnak($nazov);
(je zbytočné meniť reťazec na reťazec)

A nakoniec, presuň tú funkciu pred while (lebo keď je v tom while, tak sa pri každom prechode znovu definuje a to sa php nepáči).
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

lenze ked to pred to vhile tak ako am vediet co bude nazov... vsak to najskor musim vytiahnut z db nie ?
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Kód: Vybrať všetko

function upravPrvyZnak($s)
{
	if (preg_match("/(.[.]?)(.*)/", $s, $matches) > 0) {
		return '<span class="green">' . $matches[1] . '</span>' . $matches[2];
	} else {
		return "";
	}
}

$result=mysql_query("SELECT * from referencie order by ID ASC");
while ($row=mysql_fetch_array($result)) {
	$nazov = upravPrvyZnak($row['nazov']);
	echo "<div class=\"image2\">$obrazok</div><h1>$nazov</h1>";
}
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

ahaa... sag jasne... ja som trubka. co ma to skor nenapadlo :D
Napísať odpoveď