Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php + mysql ] Skracanie tematu
pioch
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

Ostrzeżenie: (0%)
-----


witam


mam taki kod :

  1. <?php
  2. $res=mysql_query(" SELECT n.data_n, n.id as id, n.tytul, n.tresc_krotka, n.akcept, k.id as id1, k.nazwa, k.kat_foto
  3. FROM newsy as n, kategorie_newsy as k
  4. WHERE k.id = n.kategoria AND ( n.akcept = 'Z' )
  5. ORDER BY id DESC ");
  6.  
  7. $old_row=array();
  8.  
  9.  
  10.  
  11.  
  12. echo "<font class="LOGINHD3"><center>Archiwum newsów oe-gol.pl<br><br /></center></font> ";
  13. echo "<center><br><table width="400">";
  14. while($row=mysql_fetch_array($res))
  15. {
  16.  
  17.  
  18.  if($row['data_n']!=$old_row['data_n'])
  19.  
  20.  echo "<tr><td width="400" colspan="3"><center><font class="LOGINHD2">".$row['data_n']."</font></center></td></tr>";
  21. echo "<tr><td><img border="0" src="grafika/strzal.gif" width="10" height="10">&nbsp;&nbsp;&nbsp;<a href="news.php?id=".$row['id']."">".$row['tytul']."</a></td>
  22. </tr> ";
  23.  
  24.  
  25.  $old_row=$row;
  26. }
  27. echo "</center></table><br><br />";
  28. ?>



w jaki sposób moge skrócić $row['tutul'] powiedzmy aby wyświetlało 20 znaków....
Go to the top of the page
+Quote Post
maryaan
post
Post #2





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


oczywiscie mozesz uzyc funkcji substr() w zaleznosci od tego czy chcesz ciac stringa dopiero w php czy juz na etapie wyciagania danych z bazy, manual mysql jest tutaj http://dev.mysql.com/doc/refman/4.1/en/string-functions.html a tu php substr()
Go to the top of the page
+Quote Post
pioch
post
Post #3





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

Ostrzeżenie: (0%)
-----


za pomoca substr() , jesli sobie określiłem $opis (' dhjdjjdjjdjdjdjdjdjdjdjdjdjdjdj') potrafie ,
ale juz w tym zapytaniu nie.....
Go to the top of the page
+Quote Post
maryaan
post
Post #4





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


w zapytaniu jest to samo, tyle ze "zmienna" jest pole z tabeli, dalem link do manuala - kombinuj...
Go to the top of the page
+Quote Post
nexis
post
Post #5





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $res = mysql_query(" SELECT n.data_n, n.id as id, SUBSTRING(n.tytul, 0, 20), n.tresc_krotka, n.akcept, k.id as id1, k.nazwa, k.kat_foto FROM newsy as n, kate
    gorie_newsy as k WHERE k.id = n.kategoria AND ( n.akcept = 'Z' ) ORDER BY id DESC"
    );
  3. ?>
Go to the top of the page
+Quote Post
pioch
post
Post #6





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 30.11.2006

Ostrzeżenie: (0%)
-----


chciałem ogranicznić juz na poziomie bazy i wyskakuje mi bład

wiec spróbowałem....

  1. <?php
  2. CONCAT(SUBSTRING(n.tytul,1,250),'...')
  3. ?>


i też wywala bład....


Przy samym

  1. <?php
  2. SUBSTRING(n.tytul, 0, 20)
  3. ?>


nie wyświetla tematów...
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Przy samym

Kod PHP1
2
3 <?php
SUBSTRING(n.tytul, 0, 20)
?>



nie wyświetla tematów...

aliasu nie zrobiles
  1. ....SUBSTRING(n.tytul, 0, 20) tytul ....
Go to the top of the page
+Quote Post
maryaan
post
Post #8





Grupa: Zarejestrowani
Postów: 380
Pomógł: 2
Dołączył: 5.01.2007

Ostrzeżenie: (0%)
-----


dla zobrazowania Twojego problemu z niewyswietlaniem samego substr()...
Kod
mysql> select substr(hash, 1, 10) from hash limit 10;
+---------------------+
| substr(hash, 1, 10) |
+---------------------+
| c4ca4238a0          |
| c81e728d9d          |
| eccbc87e4b          |
| a87ff679a2          |
| e4da3b7fbb          |
| 1679091c5a          |
| 8f14e45fce          |
| c9f0f895fb          |
| 45c48cce2e          |
| d3d9446802          |
+---------------------+
10 rows in set (0.00 sec)
nazwa pola sie "troche" rozni od zalozonej, to samo przy kombinacjach z laczeniem itp
Kod
mysql> select substr(hash, 1, 10), concat(substr(hash, 1, 5), ' - lol - ', substr(hash, 15, 5)) from hash limit 10;
+---------------------+--------------------------------------------------------------+
| substr(hash, 1, 10) | concat(substr(hash, 1, 5), ' - lol - ', substr(hash, 15, 5)) |
+---------------------+--------------------------------------------------------------+
| c4ca4238a0          | c4ca4 - lol - 820dc                                          |
| c81e728d9d          | c81e7 - lol - 636f0                                          |
| eccbc87e4b          | eccbc - lol - fe283                                          |
| a87ff679a2          | a87ff - lol - 1d918                                          |
| e4da3b7fbb          | e4da3 - lol - 45d77                                          |
| 1679091c5a          | 16790 - lol - af6fb                                          |
| 8f14e45fce          | 8f14e - lol - 7a5a3                                          |
| c9f0f895fb          | c9f0f - lol - 9159f                                          |
| 45c48cce2e          | 45c48 - lol - bdea1                                          |
| d3d9446802          | d3d94 - lol - 59755                                          |
+---------------------+--------------------------------------------------------------+
10 rows in set (0.00 sec)
tak jak powyzej zostalo wspomniane, wystarczy zarzucic aliasa na przy kazdym "obliczeniu" i tyle. A co do bledow to moga byc jakies literowki, zreszta jesli jakis blad sie pojawia, to nalezaloby go skopiowac na forum, zeby przynajmniej bylo wiadomo na co Cie nakierowac.
Go to the top of the page
+Quote Post
-Maciej Szopiński-
post
Post #9





Goście







MySQL ma coś namieszane z indeksacją znaków w funkcji SUBSTRING. W większości przypadków wystarczy zmienić pierwszy indeks początka ciągu z 0 na 1 i działa. Czyli zamiast

CODE
SUBSTRING(n.tytul, 0, 20) AS tytul


wpisujemy

CODE
SUBSTRING(n.tytul, 1, 20) AS tytul
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 07:42