vypisat iba presne zadefinovany pocet znakov

Programovacie jazyky, rady, poradňa...
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

vypisat iba presne zadefinovany pocet znakov

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

cawte mosete mi poradit ako vypisat pole z databazy len v urcitom pocte znakov?...a nevadi ze usekne slovo nasiel som na nete ako sa da vypisat urcity pocet slov ale znaky nemosem najst....znaky pocitam vsetko uplne aj medzery...vlozit to potrebujem do vypisu...

Kód: Vybrať všetko

<?php
					$db_spojenie = mysql_connect("server", "databaza", "heslo");
					mysql_select_db("databaza");

					
					$sql = "SELECT * FROM songs WHERE category_id='$category' AND function='1' ORDER BY datum DESC LIMIT 1 "; 
					$res = mysql_query($sql); 
					if($res!==false) { 
   					while ($riadok = mysql_fetch_assoc($res)) 
					{ 
						echo '"&nbsp;',$riadok['meno'],'&nbsp;"<br>';
						echo '<font size="1">',$riadok['datum'],'</font>';
						}
					}
					?>
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Re: vypisat iba presne zadefinovany pocet znakov

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

Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: vypisat iba presne zadefinovany pocet znakov

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

Neviem Ti najst konkretnu funkciu, neviem si spomenut. Ale tu som ti jednu spravil:

Kód: Vybrať všetko

<?
function cut2char($string,$len)
{
 if(strlen($string)<=$len){
   return $string;
 }else{
  $kontrlen=-1;
  $out;
  for($i=0;$i<$len;$i++){
   if($kontrlen!=$len){
    if($kontrlen==-1){
     $out=$string[0];
     $kontrlen=1;
    }else{
      $out=$out.$string[$kontrlen];
      $kontrlen=$kontrlen+1;

 }
 }
 }
 return $out;
 }
}

?>
pouzitie:

Kód: Vybrať všetko

cut2char($premenna_ktoru_budes_skracovat,$kolko_ma_mat_znakov);
premenna vracia return, kt.obsahuje skrateny text.
prakticke pouzitie:

Kód: Vybrať všetko

echo cut2char("Blablabla",3);
Vypise:
Bla

//edit: tak, moc dlho som pisal tu funkciu, az som si nevsimol substr predo mnou :D
Kazdopadne moja funkcia je o nieco jednoduchsia :)
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Re: vypisat iba presne zadefinovany pocet znakov

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

spravil som to takto :

Kód: Vybrať všetko

<?php
               $db_spojenie = mysql_connect("server", "databaza", "heslo");
               mysql_select_db("databaza");

               
               $sql = "SELECT * FROM songs WHERE category_id='$category' AND function='1' ORDER BY datum DESC LIMIT 1 "; 
               $res = mysql_query($sql); 
               if($res!==false) { 
                  while ($riadok = mysql_fetch_assoc($res)) 
               { 
function cut2char($meno,$pocet)
				{
				if(strlen($meno)<=$pocet){
   				return $meno;
				}else{
  				$kontrlen=-1;
  				$out;
  				for($i=0;$i<$pocet;$i++){
   				if($kontrlen!=$pocet){
    				if($kontrlen==-1){
     				$out=$meno[0];
     				$kontrlen=1;
    				}else{
      				$out=$out.$meno[$kontrlen];
      				$kontrlen=$kontrlen+1;

				}
				}
				}
				return $out;
				}
				}
	         echo cut2char($riadok['meno'],30);
                  }
               }
               ?>
a do vypisu dam echo cut2char($riadok['meno'],30); lenze vypisuje mi chybu

Kód: Vybrať všetko

Fatal error: Cannot redeclare cut2char() (previously declared in /9p/xf.cz/s/sharemp3/categories/default.php:156) in /9p/xf.cz/s/sharemp3/categories/default.php on line 156
ja to potrebujem pre viac vypisov preto mi to hadze chybu a vypise iba jeden riadok
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: vypisat iba presne zadefinovany pocet znakov

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

ten tvoj súbor kde to máš niekam includuješ, a zrejme ho na stránku includuješ viackrát. Buď daj definíciu tej funkcie niekde na začiatok, alebo si podmienkou zabezpeč aby sa definovala iba ak ešte taká funkcia neexistuje pomocou function_exists()
Aj tak nechápem prečo si si nezvolil substr ale túto jej obmenu ktorá je (bohužial) zase divne naprogramovaná. Celé to kontrlen tam nemá žiaden zmysel a iba ju naťahuje
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: vypisat iba presne zadefinovany pocet znakov

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

Kód: Vybrať všetko

<?php
function cut2char($meno,$pocet){
            if(strlen($meno)<=$pocet){
               return $meno;
            }else{
              $kontrlen=-1;
              $out;
              for($i=0;$i<$pocet;$i++){
               if($kontrlen!=$pocet){
                if($kontrlen==-1){
                 $out=$meno[0];
                 $kontrlen=1;
                }else{
                  $out=$out.$meno[$kontrlen];
                  $kontrlen=$kontrlen+1;

            }
            }
            }
            return $out;
            }
}
               $db_spojenie = mysql_connect("server", "databaza", "heslo");
               mysql_select_db("databaza");

               
               
               $res = mysql_query("SELECT * FROM songs WHERE category_id='$category' AND function='1' ORDER BY datum DESC LIMIT 1 " ); 
               if($db_spojenie){
                while($riadok=mysql_fetch_array($res)){
                  echo cut2char($riadok['meno'],30);
                }
               }
               ?>
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Re: vypisat iba presne zadefinovany pocet znakov

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

Mmartin napísal: Kazdopadne moja funkcia je o nieco jednoduchsia :)
a v com je jednoduchsia? jednoduchsie je mat v kode zbytocnych 20 riadkov ked mozes mat 1?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: vypisat iba presne zadefinovany pocet znakov

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

to ale stále nemusí riešiť jeho problém (viď moju poznámku o viacnásobnom include do jedného súboru). Funkcie sa deklarujú v jednom súbore ktorý je includovaný na začiatku, a neprekladajú sa so zdrojákom
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: vypisat iba presne zadefinovany pocet znakov

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

moja je lahsie pochopitelna, ma menej parametrov, ...
uz som cakal, kto to vezme za slovo, a zacne hladat nedostatky :\

//autoeditácia príspevku (04 Feb 2010, 17:39)
audio ano, ale moj post som poslal este pred tym, ako som videl Tvoj.
ked si da func na zaciatku, toto by mu malo ist
Ak sa mylim, oprav ma.
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Re: vypisat iba presne zadefinovany pocet znakov

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

super dal som to na zaciatok dakujem....a doplnil som za $out.'...'; aby ked je dlhsi tak dopise tri bodky dakujem vam pekne vsetko funguje :)

//autoeditácia príspevku (04 Feb 2010, 17:51)
audiotrack napísal:to ale stále nemusí riešiť jeho problém (viď moju poznámku o viacnásobnom include do jedného súboru). Funkcie sa deklarujú v jednom súbore ktorý je includovaný na začiatku, a neprekladajú sa so zdrojákom
dal som ju do indexu kde sa vsetko inculuje a ide to nice :)
Mmartin
Guru
Guru
Používateľov profilový obrázok
Príspevky: 2786
Registrovaný: 07 feb 2009, 12:49
Bydlisko: Bratislava

Re: vypisat iba presne zadefinovany pocet znakov

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

Nz, karma potesi :D
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: vypisat iba presne zadefinovany pocet znakov

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

MMartin, k znakom toho stringu pristupuj cez charAt() a nie ako do poľa. Prečo, to sa dočítaš tu: http://us3.php.net/manual/en/function.substr.php#93884
Napísať odpoveď