Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]Problem ze skracaniem newsa
Forum PHP.pl > Forum > PHP
Oscar_83
Witam mam taki oto kod:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "***", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('***', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $news ='';
  10. while ($row = mysql_fetch_array($results)) {
  11. $news .=' <i>'.$row['zamieszczone'].'
  12. </i><br><br><b>
  13. <center>'.$row['tytul'].'
  14. </center></b><br>'.nl2br($row['tresc']).'
  15. <br><br>';
  16. if( strlen( $news ) > 500 )
  17. {
  18.  echo substr( $news , 0 , 500 ) . '...';
  19.  echo '<br/>Czytaj więcej<br><br><hr width=100%><br>';
  20. }
  21. else
  22. {
  23.  echo $news;
  24. }
  25. }
  26.  
  27. ?>


mam w bazie 2 newsy odpowiadające kryteriom kto="juniorzy" lecz 2 razy wyświetla mi się news ostatni (prawidłowo skrócony)
jak mogę w miejsce "Czytaj więcej" wstawić odnośnik który pokaże w całości konkretny news?? Myśle że po id, które wczytuje w Select ale jakim sposobem wymusić żeby pokazało newsa z konkretnego id odpowiadającemu newsowi który chce pokazać?

Proszę o pomoc. z góry wielkie dzięki
Force
Linijkę 22 popraw na
  1. <?php
  2. echo '<br/><a href="news.php?id=' . $row['id'] . '">Czytaj więcej</a><br><br><hr width=100%><br>';
  3. ?>


zrób drugi plik np news.php
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "***", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('***', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  $id = intval($_GET['id']); 
  7.  
  8. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' and `id` = '$id' ORDER BY zamieszczone DESC LIMIT 0, 1";
  9. $results = mysql_query($query) or die (mysql_error());
  10. $news ='';
  11. while ($row = mysql_fetch_array($results)) {
  12. $news .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18.  echo $news;
  19. }
  20.  
  21. ?>
Oscar_83
Po tych zmianach 2 wyświetlany news robi za odnośnik do tego pierwszego newsa (i jest to kawałek pierwszego newsa a nie drugiego - wydaje mi się że coś nie tak z pętlą).
Jak mam zrobić żeby pełen news otwierał w tej samej kolumnie? (mam wszystko zrobione za pomocą div), a nie w nowej stronie?

kod po modyfikacji:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "***", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('***', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $news ='';
  10. while ($row = mysql_fetch_array($results)) {
  11. $news .=' <i>'.$row['zamieszczone'].'
  12. </i><br><br><b>
  13. <center>'.$row['tytul'].'
  14. </center></b><br>'.nl2br($row['tresc']).'
  15. <br><br>';
  16. }
  17. if( strlen( $news ) > 500 )
  18. {
  19.  echo substr( $news , 0 , 500 ) . '...';
  20.  echo '<a href="news.php?id=' . $row['id'] . '" >Czytaj więcej<br><br><hr width=100%><br>';
  21. }
  22. else
  23. {
  24.  echo $news;
  25. }
  26.  
  27.  
  28. ?>


Rozwiązałem problem z wyświetlaniem drugiego news'a
poprawny kod wygląda tak:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "***", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('***', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $i=1;
  10. $news[$i] ='';
  11. while ($row = mysql_fetch_array($results)) {{
  12. $news[$i] .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18. }
  19. if( strlen( $news[$i] ) > 500 )
  20. {
  21.  echo substr( $news[$i] , 0 , 500 ) . '...';
  22.  echo '<a href="news.php?id=' . $row['id'] . '" >Czytaj więcej</a><br><br><hr width=100%><br>';
  23. }
  24. else
  25. {
  26.  echo $news[$i];
  27. }
  28. $i++;}
  29.  
  30.  
  31. ?>


pozostaje jeszcze problem otwierania w tej samej warstwie.
Bo narazie po kliknięciu na czytaj więcej otwiera się cały news ale na czystej stronie (nie zawierającej żadnych divów - niczego)

Chciałbym żeby po kliknięciu na czytaj więcej otwierał mi się cały news ale w tym samym divie środkowym:
podaje kod index.php gdzie są divy:

  1. <body>
  2.  
  3.  
  4.  <div id="strona">
  5.  
  6.  <div id="naglowek">
  7.  
  8.  
  9.  </div>
  10. <div id="cialo">
  11.  
  12.  
  13.  <div id="lewakolumna">
  14. <br>
  15.  
  16.  <center><table width="92%" border="0" cellspacing="3"></center>
  17. <tr>
  18. <td background="blade.jpg" align="center"><b>Seniorzy</b></td>
  19. </tr>
  20. <tr>
  21. <td align="left">&nbsp<a href="index.php?id=aktualnosci">Aktualności</a></td>
  22. </tr>
  23. <tr>
  24. <td align="left">&nbsp<a href="index.php?id=zawodnicy">Zawodnicy</a></td>
  25. </tr>
  26. <tr>
  27. <td align="left">&nbsp<a href="index.php?id=tabela">Tabela</a></td>
  28. </tr>
  29. <tr>
  30. <td align="left">&nbsp<a href="index.php?id=kalendarz">Kalendarz spotkań</a><br>&nbsp</td>
  31. </tr>
  32. </table>
  33.  
  34.  <center><table width="92%" border="0" cellspacing="3"></center>
  35. <tr>
  36. <td background="blade.jpg" align="center"><b>Juniorzy starsi</b></td>
  37. </tr>
  38. <tr>
  39. <td align="left">&nbsp<a href="index.php?id=aktualnosci_j">Aktualności</a></td>
  40. </tr>
  41. <tr>
  42. <td align="left">&nbsp<a href="index.php?id=zawodnicy_j">Zawodnicy</a></td>
  43. </tr>
  44. <tr>
  45. <td align="left">&nbsp<a href="index.php?id=tabela_j">Tabela</a></td>
  46. </tr>
  47. <tr>
  48. <td align="left">&nbsp<a href="index.php?id=kalendarz_j">Kalendarz spotkań</a><br>&nbsp</td>
  49. </tr>
  50. </table>
  51.  
  52.  <center><table width="92%" border="0" cellspacing="3"></center>
  53. <tr>
  54. <td background="blade.jpg" align="center"><b>Juniorzy młodsi</b></td>
  55. </tr>
  56. <tr>
  57. <td align="left">&nbsp<a href="index.php?id=aktualnosci_jm">Aktualności</a></td>
  58. </tr>
  59. <tr>
  60. <td align="left">&nbsp<a href="index.php?id=zawodnicy_jm">Zawodnicy</a></td>
  61. </tr>
  62. <tr>
  63. <td align="left">&nbsp<a href="index.php?id=tabela_jm">Tabela</a></td>
  64. </tr>
  65. <tr>
  66. <td align="left">&nbsp<a href="index.php?id=kalendarz_jm">Kalendarz spotkań</a><br>&nbsp</td>
  67. </tr>
  68. </table>
  69. <center><table width="92%" border="0" cellspacing="3"></center>
  70. <tr>
  71. <td background="blade.jpg" align="center"><b>Młodzicy</b></td>
  72. </tr>
  73. <tr>
  74. <td align="left">&nbsp<a href="index.php?id=akt">Aktualności</a></td>
  75. </tr>
  76. <tr>
  77. <td align="left">&nbsp<a href="index.php?id=zawodnicy_m">Zawodnicy</a></td>
  78. </tr>
  79. <tr>
  80. <td align="left">&nbsp<a href="index.php?id=tabela_m">Tabela</a></td>
  81. </tr>
  82. <tr>
  83. <td align="left">&nbsp<a href="index.php?id=kalendarz_m">Kalendarz spotkań</a></td>
  84. </tr>
  85. </table>
  86. <br>
  87.  <center><table width="92%" border="0" cellspacing="3"></center>
  88. <tr>
  89. <td background="blade.jpg">&nbsp</td>
  90. </tr>
  91. <tr>
  92. <td align="left">&nbsp<a href="index.php?id=home">Strona główna</a></td>
  93. </tr>
  94. <tr>
  95. <td align="left">&nbsp<a href="http://startnidzica.dyskusja24.pl/" target="_blank">Forum</a></td>
  96. </tr>
  97. </table>
  98.  
  99.  
  100.  
  101.  </div>
  102.  <!-- End lewakolumna -->
  103.  
  104.  
  105.  <div id="srodek">
  106.  <?php
  107.  
  108.  $strony=array('home', 'aktualnosci', 'akt', 'aktualnosci_m', 'news', 'zawodnicy',
  109.  'zawodnicy_m', 'tabela', 'tabela_j', 'tabela_jm', 'kalendarz', 'kalendarz_j',
  110.  'kalendarz_jm', 'kontakt', 'aktualnosci_j', 'zawodnicy_j', 'zawodnicy_jm', 'aktualnosci_jm');
  111.  
  112. if (isset($_GET['id'])) $id=$_GET['id'];
  113. else $id='';
  114. if (!in_array($id,$strony)) $id=$strony[0];
  115. if (file_exists($id.'.php')) include($id.'.php');
  116. else include('home.php')
  117. ?>
  118.  
  119.  </div>
  120.  <!-- End Srodek -->
  121.  
  122.  
  123.  
  124.  
  125.  <div id="prawakolumna">
  126.  
  127.  </div>
  128.  <!-- End prawakolumna -->
  129.  
  130.  </div>  
  131.  <!-- End cialo -->
  132.  
  133.  
  134.  <div id="stopka">
  135.  
  136.  <p><center><a href="index.php?id=kontakt">* kontakt * &nbsp</a><a href="http://www.nidzica.pl" target="_blank">* Nidzica *</a></center></p>  
  137.  
  138.  </div>
  139.  <!-- End stopka -->
  140.  
  141.  </div>
  142.  <!-- End strona -->
  143. </body>
  144. </html>
  145. //<a target="_blank" href="index2.php">u</a><


pomoże ktoś jak zrobić odnośnik do wyświetlenia całego newsa w divie "srodek" questionmark.gif
Proszę o pomoc.
PawelC
Wstaw ten kod w div srodek:
Kod
<?php
     $polaczenie = mysql_connect("mysql2.yoyo.pl", "***", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
     mysql_select_db('***', $polaczenie)
     or die (mysql_error());
     mysql_query('SET NAMES latin2');

    $query = "SELECT `id`, `zamieszczone`, `tytul`,`tresc` FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
    $results = mysql_query($query) or die (mysql_error());
    $i=1;
    $news[$i] ='';
    while ($row = mysql_fetch_array($results)) {
    $news[$i] .=' <i>'.$row[1].'
    </i><br><br><b>
    <center>'.$row[2].'
    </center></b><br>'.nl2br($row[3]).'
    <br><br>';

}
if( strlen( $news[$i] ) > 500 )
{
   echo substr( $news[$i] , 0 , 500 ) . '...';
   echo '<a href="news.php?id=' . $row[0] . '" >Czytaj więcej</a><br><br><hr width=100%><br>';
}
else
{
echo $news[$i];
}
$i++;}


?>

jak nie będzie działało to Ci napisze to od zera.
Oscar_83
ale ja nie chce żeby zawsze w divie środkowym były te newsy, bo div środkowy zmienia się w zależności na co kliknę w divie lewakolumna. A te newsy to są po kliknięciu w divie lewakolumna na odnośnik aktualności w młodzikach i wtedy w divie środkowym pojawiają mi się altualności z pliku akt.php o zawartości:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('db396325', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $i=1;
  10. $news[$i] ='';
  11. while ($row = mysql_fetch_array($results)) {{
  12. $news[$i] .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18. }
  19. if( strlen( $news[$i] ) > 500 )
  20. {
  21.  echo substr( $news[$i] , 0 , 500 ) . '...';
  22.  echo '<a href="news.php?id=' . $row['id'] . '" >Czytaj więcej</a><br><br><hr width=100%><br>';
  23. }
  24. else
  25. {
  26.  echo $news[$i];
  27. }
  28. $i++;}
  29.  
  30.  
  31. ?>


i newsy się dobrze wyświetlają skrócone i teraz po kliknięciu na czytaj więcej chciałbym aby w divie środkowym pojawił się cały ten kliknięty news (a teraz jak mam to się odpala na białej stronie).
PawelC
To musisz jeszcze w linki oprócz id przesłać tytuł metodą get. Wtedy wyświetli Ci dany artykuł w środkowym divie.
Oscar_83
a jak to się robi?
PawelC
Kod
echo '<a href="news.php?id=' . $row['id'] . '&tytul='.$row['tytul'].'" >Czytaj więcej</a><br><br><hr width=100%><br>';

Najlepiej gdybyś zrobił plik np. pokaz.php w którym byłoby zapytanie select do bazy żeby Ci wyświetlił dany tekst.
Oscar_83
po zmianie na ten kod co podałeś dalej jest to samo sad.gif
a to nie chodzi przypadkiem żeby ten adres po wyświetleniu pełnego newsa miał w sobie yoyo.pl/index.php
bo wszystkie co mi się w środku otwierają to mają postać taką:
yoyo.pl/index.php?id=aktualnosci_jm
yoyo.pl/index.php?id=tabela
yoyo.pl/index.php?id=zawodnicy

i są wtedy dobrze wyświetlane w divie środkowym
a ten cały news otwiera się na białej stronie i ma wtedy adres

wcześniejsza postać
yoyo.pl/news.php?id=15
z przekazaniem tytułu
yoyo.pl/news.php?id=15&tytul=Start%20Nidzica%20-%20Burza%20SRWSiO%20S%B3upy%202:0%20(2:0)
w tych 2 postaciach efekt taki sam jest :/

jak zrobić żeby adres do wyświetlenia pełnego newsa był np taki
yoyo.pl/index.php?id=news

albo np

yoyo.pl/index.php?id=aktualnosci_jm&pełen_news
bp gdy widze te skrócone newsy to mam adres
yoyo.pl/index.php?id=aktualnosci_jm i wtedy na tej stronie klikam na czytaj więcej żeby mi pokazało cały konkretny news

Zrobiłem odnośnik który wyświetla mi po kliknięciu prawidłowo w divie środek, ale wyświetla mi nie tylko ten 1 konkretny news tylko wszystkie całe :/
kod mam taki:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('db396325', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $i=1;
  10. $news[$i] ='';
  11. while ($row = mysql_fetch_array($results)) {{
  12. $news[$i] .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18. }
  19. if( strlen( $news[$i] ) > 500 )
  20. {
  21.  echo substr( $news[$i] , 0 , 500 ) . '...';
  22.  echo '<a href="index.php?id=news.php?&id=' . $row['id'] . '" >Czytaj więcej</a><br><br><hr width=100%><br>';
  23. }
  24. else
  25. {
  26.  echo $news[$i];
  27. }
  28. $i++;}
  29.  
  30.  
  31. ?>


id przenosi dobrze ale i tak nic sobie z tego nie robi i wyświetla wszystkie a nie tylko ten jeden wybrany
PawelC
zrób ten link tak jak napisałem z tym $row['tytul'] i zrób nowy plik np view-news.php i do niego wstaw polecenie które wyświetli Ci dany news, a id i tytuł pobierze z adresu www. i to musisz przesłać $_GET['nazwa'] wtedy będzie działało na 100% bo ja tak mam i mi działa.
Oscar_83
ale nie bardzo wiem jak ten plik view-news.php ma się do tego bo przecież trzeba by było jakiś link utworzyć żeby wogóle skrypt przechodził przez ten plik view-news.php

ja już mam plik odpowiedzialny za wyświetlenie całego newsa i jest to właśnie ten plik news.php a oto jego kod.

  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('db396325', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  $id = intval($_GET['id']);
  7.  
  8. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' and `id` = '$id' ORDER BY zamieszczone DESC LIMIT 0, 1";
  9. $results = mysql_query($query) or die (mysql_error());
  10. $news ='';
  11. while ($row = mysql_fetch_array($results)) {
  12. $news .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18.  echo $news;
  19. }
  20.  
  21. ?>


a te skrócone newsy wyświetla mi plik akt.php a oto kod tego pliku:
  1. <?php
  2.  $polaczenie = mysql_connect("mysql2.yoyo.pl", "db396325", "***") or die ("SprawdĽ połączenie z serwerem: " . mysql_error());
  3.  mysql_select_db('db396325', $polaczenie)
  4.  or die (mysql_error());
  5.  mysql_query('SET NAMES latin2');
  6.  
  7. $query = "SELECT id, zamieszczone, tytul, tresc FROM aktualnosci WHERE kto='juniorzy' ORDER BY zamieszczone DESC LIMIT 5";
  8. $results = mysql_query($query) or die (mysql_error());
  9. $i=1;
  10. $news[$i] ='';
  11. while ($row = mysql_fetch_array($results)) {{
  12. $news[$i] .=' <i>'.$row['zamieszczone'].'
  13. </i><br><br><b>
  14. <center>'.$row['tytul'].'
  15. </center></b><br>'.nl2br($row['tresc']).'
  16. <br><br>';
  17.  
  18. }
  19. if( strlen( $news[$i] ) > 500 )
  20. {
  21.  echo substr( $news[$i] , 0 , 500 ) . '...';
  22.  echo '<a href="news.php?id=' . $row['id'] . '&tytul='.$row['tytul'].'" >Czytaj więcej</a><br><br><hr width=100%><br>';
  23. }
  24. else
  25. {
  26.  echo $news[$i];
  27. }
  28. $i++;}
  29.  
  30.  
  31. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.