Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP aktualizacja strony
Forum PHP.pl > Forum > Przedszkole
kamil1114
Jak zrobić tak , żeby bez zdejmowania strony z serwera , prosto edytować stronę np. chciałbym dodać newsa albo artykuł na swoją stronę i chciałbym żeby odbyło się to bez zdejmowania strony z serwera. Robi tak na przykład onet , pojawiają się nowe linki , a strona cały czas działa.
Wicepsik
Zdejmowanie strony? Czyli kasujesz wszystkie pliki php z serwera i wrzucasz nowe? wstydnis.gif
onet.pl zapewne ma newsy w bazie mysql.
Poczytaj w google o mysql+php
phpion
Cytat(Wicepsik @ 13.05.2009, 16:38:19 ) *
onet.pl zapewne ma newsy w bazie mysql.

Nie byłbym taki pewien czy to na pewno MySQL. Wręcz wątpię w to...
kajzur
Ale ogólnie na jakiejś bazie danych jest winksmiley.jpg Jak dodać artykuł? Hm, pobieraj artykuły z bazy i je tam zapisuj. I nic na plikach nie musisz robić ;p
kamil1114
Nie , chodziło mi raczej o aktualizację. Czyli mam jakiś tekst i chcę coś dopisać. Czyli żeby tak robić , to muszę utworzyć jakąś bazę danych , bez niej się nie da tak robić ?
tomsi
W bazie zrób sobie tabelę i tam wrzuc np. (id, tytul, tresc, data, godz, autor) - i co tam jeszcze chcesz.

W skrypcie PHP opracuj sobie tylko kod to wyświetlania na stronie (połączenie z bazą, wybór odpowiedniej bazy, tabeli i pól z tabeli z news'ami, następnie jakąs pętle, które będzie Ci pobierała wszystkie news'y z bazy najlepiej od razu zapytaniem SQL zrób sobie takk żeby najnowszy news był jako pierwszy na stronie).

Żeby dodawać news'y do bazy napisz sobie skrypt, który będzie zawierał jakiś formularz do wpisywania danych i zapisania ich do bazy. Tak samo możesz zrobić skrypt do edycji i usuwania news.


Cytat
Nie , chodziło mi raczej o aktualizację. Czyli mam jakiś tekst i chcę coś dopisać. Czyli żeby tak robić , to muszę utworzyć jakąś bazę danych , bez niej się nie da tak robić ?


No baza danych jest najlepszym rozwiązaniem. Innym jest zapisywać news'y w pliku np. .txt.
kamil1114
Dokładnie o to mi chodziło , dziękuję. A ten skrypt do dodawania i usuwania newsów też wrzucić na serwer ? Tylko się nie śmiejcie , może dla Was to logiczne , ale ja się wolę upewnić.
tomsi
Tak muszą być na serwerze. Plus jest taki tego, że nie musisz już potem wchodzić do bazy danych i tam coś dopisywać (MySQL) albo łączyć się z serwerem przez ftp żeby dodać lub zmienić coś w pliku .txt. Możesz sobie zrobic jakiś panel administratora i tam linki do wszystkich skryptów dla adminia.
kamil1114
Ok , dziękuje za pomoc. Tylko wtedy musiałoby być wszystko na sesjach i na hasło ten panel. Jest trochę roboty.

Nie chcę zakładać nowego tematu , więc tu zapytam.
Czemu jak mam taki kod:
  1. <?php
  2. if(!empty($title) && !empty($text)){
  3. mysql_query("insert into newsy (tytul,tresc) values ('$title','$text')");
  4. }
  5. ?>


to po każdym odświeżeniu strony dodaje mi się rekord do bazy danych ?
Ja to rozumiem tak - jeżeli zmienna title nie jest pusta i zmienna text nie jest pusta to dodaj ......
I jak nie wypełnię danych to się dodaje kolejny rekord do bazy danych , a tak nie powinno być.
Działa kod:
  1. <?php
  2. if(empty($title) && empty($text)){
  3. mysql_query("insert into newsy (tytul,tresc) values ('$title','$text')");
  4. }
  5. ?>

Tylko nie rozumiem czemu , działa tak jakby na odwrót , powinien działać kod 1 , a działa 2. Czemu tak jest ?
maniekl2
A pokaż jak wygląda kod przed tym warunkiem. Głównie chodzi mi o $title i $text
kamil1114
  1. <?php
  2. <form method="post">
  3. Tytul newsa: </br>
  4. <input type="text" name="title"> </br>
  5. Tres&#263; newsa: </br>
  6. <input type="text" name="text">
  7. <input type="submit" value="dopisz">
  8. </form>
  9. <?php
  10. $title=$_POST['title'];
  11. $text=$_POST['text'];
  12.  
  13.  
  14. mysql_connect('localhost','root','haslo');
  15. mysql_select_db('kamil_newsy');
  16. if(empty($title) && empty($text)){
  17. mysql_query("insert into newsy (tytul,tresc) values ('$title','$text')");
  18. }
  19. ?>
maniekl2
U mnie działa poprawnie. Sprawdzałem bez łączenia z bazą:
  1. <form method="post">
  2. Tytul newsa: </br>
  3. <input type="text" name="title"> </br>
  4. Tresc; newsa: </br>
  5. <input type="text" name="text">
  6. <input type="submit" value="dopisz">
  7. </form>
  8. <?php
  9. $title=$_POST['title'];
  10. $text=$_POST['text'];
  11.  
  12.  
  13.  
  14. if(!empty($title) && !empty($text)){
  15. echo 'wyswietl'; // kiedy nie sa puste wyświetla
  16. }
  17. ?>


A tak w ogóle nie dawaj "pomógł" za każdą wypowiedź bo nie temu ona służy. "Pomógł" jest po to by wskazać rozwiązanie danego problemu. A mój poprzedni post na pewno nie był rozwiązaniem.
kamil1114
Ok , dziękuję za sprawdzenie. Za pierwszym razem też mi działa , ale jak zacznę odświeżać stronę nie wpisując nic , to on sam sobie dopisuje. A odnośnie "pomógł" to dlatego daję w takich ilościach , żeby zachęcić do pomocy. Już tak nie będę robił.
Maxik
Dlatego, że jak odświeżysz, przeglądarka ponownie wysyła dane przez POST, warunek jest spełniony, rekord się dodaje.
kamil1114
A da się temu jakoś zapobiec ? Może metodą GET , ona też to spowoduje ?
Maxik
GET tymbardziej, po dodaniu rekordu przekieruj na inną lub tą samą stronę:

Kod
<form method="post">
Tytul newsa: </br>
<input type="text" name="title"> </br>
Tresc; newsa: </br>
<input type="text" name="text">
<input type="submit" value="dopisz">
</form>

  1. <?php
  2. $title=$_POST['title'];
  3. $text=$_POST['text'];
  4.  
  5. if(!empty($title) && !empty($text)){
  6. mysql_query("INSERT INTO `newsy`(tytul, tresc) Values('".$title."','".$text."')");
  7. echo '<script type="text/javascript">
  8. window.location.href = "index.php";
  9. </script>';
  10. }
  11. ?>
kamil1114
Bardzo dziękuję , temat do zamknięcia.
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.