Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System newsów mysql
Forum PHP.pl > Forum > Gotowe rozwiązania
gosciu99
Oto kod wyświetlający:
  1. <?php
  2. /* 
  3. ...........News.php.............................................................
  4. ...
  5. ...........Data:5.06.03.........................................................
    ...
  6. */
  7.  
  8.  
  9.  
  10. $conn=mysql_connect(&#092;"localhost\", \"root\", \"krasnal\");   
  11.  
  12.  
  13. mysql_select_db(&#092;"moja_baza\", $conn);  
  14.  
  15.  
  16. $result=mysql_query(&#092;"select * from system_news order by data\", $conn);
  17.  
  18.  
  19.  
  20. while ($myrow = mysql_fetch_assoc($result))
  21. {
  22.  
  23. //Wyswietlamy kolejne elementy tablicy.
  24.  
  25. echo ('<table border=1 bordercolor=royalblue>');
  26. echo ('<tr BGCOLOR=royalblue>');
  27. echo ('<td>');
  28. echo (&#092;"<b>\" .$myrow[\"tytul\"] );
  29. echo ('</td>');
  30. echo ('</b><td>');
  31. echo (&#092;"\" .$myrow[\"data\"] );
  32. echo ('</td>');
  33. echo ('</tr>');
  34. echo ('<tr>');
  35. echo ('<td colspan=\"2\">');
  36. echo (&#092;"\" .$myrow[\"tresc\"] );
  37. echo ('</td>');
  38. echo ('</tr>');
  39. echo ('<tr>');
  40. echo ('<td>');
  41. echo (&#092;"Zrodlo:\" .$myrow[\"zrodlo\"] );
  42. echo ('</td>');
  43. echo ('<td>');
  44. echo (&#092;"Autor:<a href=mailto:\" .$myrow[\"e-mail\"]);
  45. echo (&#092;">\".$myrow[\"autor\"] );
  46. echo (&#092;"</a>\");
  47. echo ('</td>');
  48. echo ('</tr>');
  49. echo ('</table>');
  50. echo ('<br>');
  51. }
  52.  
  53. //Koniec Skryptu News.php
  54.  
  55. ?>


1)Jak zrobić by wyświetlał newsy najpierw nowsze a potem starsze, a nie tak jak jest teraz najpierw starsze a potem nowsze.

2)Jak zrobić, że jak news jest ma powiedzmy 300 znaków to po 200 dodaje [...] jako link a po wejściu na news.php?show=all?id=1 wyświetlał się cała treść newsa o id 1

3)Jak dodać możliwość komentowania newsów? (w oparciu o MySQL)

4)Jeżeli jest powiedzmy 15 newsów to dzieli wyświetlanie newsów na strony na dole dodaje [1] [2] [3] [4] itd.

5)Jak zrobic by gdzieś na boku można było opublikować 5 najnowszych newsów w postaci:

>> tytuł(który jest linkiem do całości newsa) ::Autor

Po najechaniu na tytuł pojawiał by się hint z autorem a po najechaniu na autor jego e-mail

Proszę po mnie nie krzyczeć jestem początkujący w tematyce php, MySQL i nie ze wszystkim sobie daje rade sad.gif

Dziękuje za każdą pomoc :!:


---
[zmoderowane]
FiDO: poprawione BBCode
mike
ad 1.
  1. <?php
  2. $result=mysql_query(&#092;"select * from system_news order by data DESC\", $conn);
  3. ?>

ad 2.
Możesz zapisywać w bazie dwa pola: jedno to cały news, a drugie to część newsa przesiana przez funkcję substr(). Albo pokazywać newsa przesianego przez podaną funkcję, a po kliknięci w link pokazywać go całego. W drugiej wersji będziesz miał mniej danych w bazie.
ad 3.
Tak samo jak dodawanie newsów. Stwórz sobie tabele comments (komentaże) i tam dodawaj komentarze jako dodatkowe id pamiętaj do krórego newsa jest króry komentaż, a potem przy newsach wyświetlaj te komentaże które pasują do newsa.
ad 4.
clickwinksmiley.jpg
ad. 5
Samo zrobienie najnowszych newsów sprowadza się do wybrania pięciu najnowszych z bazy pi po prostu wyświetleniu. Ciekawszą sprawą są takie dymki. Zajrzyj tutaj.
gosciu99
2)Co to za funkcja substr(). nigdy o niej nie słyszłem a link do czego prowadzi jest po angielsku sad.gif a ja nie umiem angielskiego sad.gif

3)Nie wiem jak to zrobić by w czasie dodawania komentarza przypisywał go do konkretnego newsa oraz by wyświetlił komentarze dla konkretnego newsa

5)Jak za pomocą php wybrać wg. daty 5 najnowszych newsów. :?: A dymki można zrobić tak jak zrobiłem ze znacznikiem < a href= " mailto:" w podanym kodzie (wyżej)

Off-Topic

Nie związane z powyższym kodem mam pytanie.....
a)Jak wybrać z bazy danych wszystkie rekordy które w polu "dział" mają wartość "software"

b)Jak wyświetlić zawartość komórki "opis" konkretnego rekordu np. ID 34



dzięki za dotychczasową pomoc
mike
ad. 2
Funkcja substr() zwraca część stringa. Pierwszy argument to oczywiście string (możesz wstawić zmienną), drugi parametr to od którego miejsca zacząć, a trzeci opcjonalny to do którego miejsca zwracać. Poczytaj przykłady w manualu. Nie trzeba znać angielskiego żeby je zrozumieć.
  1. <?php
  2. $rest = substr(&#092;"abcdef\", 1);    // zwróci \"bcdef\"
  3. $rest = substr(&#092;"abcdef\", 1, 3); // zwróci \"bcd\"
  4. $rest = substr(&#092;"abcdef\", 0, 4); // zwróci \"abcd\"
  5. $rest = substr(&#092;"abcdef\", 0, 8); // zwróci \"abcdef\"
  6. ?>

P.S. Elementy stringa są numerowane od 0 (słownie zera winksmiley.jpg )
ad. 3
Po pierwsze: masz tablelę z news'ami, mają one unikalne, niepowtarzalne ID. Teraz robisz tabelę do komentarzy: one też mają swoje ID, ale ponadto każdy z nich ma pole news_ID, które już nie jest unikalne. W polu tym przechowujesz info. do którego newsa jest to komentarz. Potem jek wyświetlasz newsa, to wyświetlasz też komentarze, które mają pole news_ID o numarze właśnie tego newsa.
P.S. Ściągnij sobie jakiś system news'ów i zobacz jak to dzała.
ad. 5
Poczytaj o limit (link po polsku winksmiley.jpg )
  1. <?php
  2. $result=mysql_query(&#092;"select * from system_news order by data DESC LIMIT 0,5\");
  3. ?>

ad. a (offtopic)
Użyj zapytania w formie konstrukcji z WHERE (link po angielsku, ale przykłady powinny byś jasne)
  1. SELECT * FROM tabela WHERE dzial='software';

ad. b (offtopic)
  1. <?php
  2. // ...
  3. $resResult = mysl_query(&#092;"SELECT * FROM tabela WHERE id=34\");
  4. $arrTab = mysql_fetch_array( $resResult );
  5. echo $arrTab[ 'opis' ];
  6. // ...
  7. ?>

P.S. click winksmiley.jpg
gosciu99
Wywala mi taki błąd....

Parse error: parse error in portal\news.php on line 28

a oto kod tego pliku co ma bład...

  1. <?php
  2.  
  3.  
  4.  
  5. $conn=mysql_connect(&#092;"localhost\", \"root\", \"krasnal\");  
  6.  
  7.  
  8. mysql_select_db(&#092;"test\", $conn);
  9.  
  10.  
  11.  
  12. $result=mysql_query(&#092;"select * from system_news order by data DESC LIMIT 0,3\".($page*$ile).\"$ile\".\"$conn\");
  13.  
  14. list($wszystkich)=mysql_fetch_row(mysql_db_query(&#092;"test\", \"SELECT count(*) FROM system_news\"));
  15.  
  16. $podstron=ceil($wszystkich/$ile);
  17.  
  18. //
  19. //
  20. //
  21.  
  22. if ($page>0) echo &#092;"[<a href=main.php?page=\".($page-1).\">Poprzednia</a>\"; 
  23. else 
  24. echo ('Poprzenia');
  25.  
  26. for ($i=1; $i<=$podstron; $i++) {
  27. if ($i==$page-1) ech &#092;"$i\"; else echo \"<a href=main.php?page=$i>$i</a>\";
  28. }
  29.  
  30. //
  31. //Przycisk Następna strona
  32. //
  33.  
  34. if ($page<$podstron) echo &#092;"[<a href=main.php?page=\".($page+1).\">Następna</a>\"; 
  35. else
  36. echo &#092;"Następna\";
  37.  
  38. /* 
  39. Przy uzyciu petli 'while', kolejne rekordy sa pobierane z bazy
  40. i zapisywane jako pola tablicy asocjacyjnej $myrow.
  41. Jej klucze odpowiadaja nazwom kolumn tabeli w bazie. 
  42. */
  43.  
  44. while ($myrow = mysql_fetch_assoc($result))
  45. {
  46.  
  47. //
  48. //Wyswietlamy kolejne elementy tablicy.
  49. //
  50.  
  51. echo ('<table border=1 bordercolor=royalblue>');
  52. echo ('<tr BGCOLOR=royalblue>');
  53. echo ('<td>');
  54. echo (&#092;"<b>\" .$myrow[\"tytul\"] );
  55. echo ('</td>');
  56. echo ('</b><td>');
  57. echo (&#092;"\" .$myrow[\"data\"] );
  58. echo ('</td>');
  59. echo ('</tr>');
  60. echo ('<tr>');
  61. echo ('<td colspan=\"2\">');
  62. echo (&#092;"\" .$myrow[\"tresc\"] );
  63. echo ('</td>');
  64. echo ('</tr>');
  65. echo ('<tr>');
  66. echo ('<td>');
  67. echo (&#092;"Zrodlo:\" .$myrow[\"zrodlo\"] );
  68. echo ('</td>');
  69. echo ('<td>');
  70. echo (&#092;"Autor:<a href=mailto:\" .$myrow[\"e-mail\"]);
  71. echo (&#092;">\".$myrow[\"autor\"] );
  72. echo (&#092;"</a>\");
  73. echo ('</td>');
  74. echo ('</tr>');
  75. echo ('</table>');
  76. echo ('<br>');
  77. }
  78.  
  79.  
  80.  
  81. //
  82. //Koniec Skryptu News.php
  83. //
  84. ?>


Linijka w której jest błąd jest pusta o co chodzi :?:

Dalej nie rozumie tego ad.2 sad.gif nie umiem załapać a jak to wykorzystać do skracania newsów :?: czarna magia.

Jak będę miał jakis jeszcze problem to napisze smile.gif
mike
Nie mam teraz czasu, więc napisze ci tylko tyle:
Masz tak:
  1. <?php
  2. if ($i==$page-1) ech &#092;"$i\"; else echo \"<a href=main.php?page=$i>$i</a>\";
  3. ?>

A zróba tak:
  1. <?php
  2. if ( $i == ( $page-) ) 
  3. echo &#092;"$i\"; 
  4. else 
  5. echo &#092;"<a href=main.php?page=$i>$i</a>\";
  6. ?>

(miałeś "ech" zamiast "echo")
Jak będę miał chwile czasu to pomoge ci jeszcze z tym skracaniem.
gosciu99
Dopiero teraz odpowiadam bo byłem na wakacjach i nie miałem kiedy wejść jak poprawiłem te ech na echo to dalej jest błąd ale inny w tej pustej linijce o co chodzi ?

i Jak te skracanie zrobić sad.gif
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-2024 Invision Power Services, Inc.