Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz zapisujacy dane w bazie mysql
Forum PHP.pl > Forum > Gotowe rozwiązania > Szukam
Mishczu
Tak jak w temacie. Formularz który dane będzie zapisywał w bazie danych lub w pliku tekstowym i drugi skrypt, który będzie te dane wypisywał na stronie w kolumnie. Coś podobnego do księgi gości lub tematu na forum czy na zasadzie ogłoszeń.

Ma to wyglądać mniej więcej, że użytkownik będzie mógł sobie wypełnić formularz i to co on tam wypełnił pokazuje się na głównej w formie listy...

Jest coś takiego? Proszę o pomoc.
Mefiuu
czy nie chodzi Ci o zwykłe pole input, później to zapisać do bazy i na głównej odczytać to za pomocą

$r = mysql_query("SELECT * FROM baza");
while ($row = mysql_fetch_assoc($r)) {
echo $row['pole1'];
echo $row['pole2'];
.......... itd.

questionmark.gif
Mishczu
No nie wiem właśnie, bo jeżeli byłoby coś takiego już gotowego, to wolałbym gotowe z ewentualnym usuwaniem, edytowaniem...
Mefiuu
Tutaj masz taki prosty skrypt dodawania newsów, napisany na poczekaniu. Może Ci się przydać. Możesz sobie to dowolnie zedytować.


add.php
  1.  
  2. $data = date("d.m.Y H:i:s");
  3.  
  4. echo '<center><b>Dodawnie nowego newsa</b><br /><br />';
  5. echo '<form action="add.php?dodaj=yes" method="post"><table border=0>';
  6. echo '<tr><td align=right>Tytuł newsa:</td><td><input type="text" name="tytul" /></td></tr>';
  7. echo '<tr><td align=right>Autor:</td><td><input type="text" name="autor" /></td></tr>';
  8. echo '<tr><td align=right>Tre?ć:</td><td><textarea name="tresc" rows=5 cols=30></textarea></td></tr>';
  9. echo '<tr><td align=right>Data:</td><td><input type="text" name="data" value="'.$data.'" /></td></tr>';
  10. echo '</table><input type="hidden" name="akcja" value="dodawanie" /><br /><input type="submit" value="Wyslij"/></center></form>';
  11.  
  12. if ($_GET["dodaj"]=="yes") {
  13.  
  14. $tytul = $_POST['tytul'];
  15. $autor = $_POST['autor'];
  16. $tresc = $_POST['tresc'];
  17. $data = $_POST['data'];
  18.  
  19. if ($tytul and $autor and $tresc and $data) {
  20. $polaczenie = mysql_connect('localhost', 'root', 'pass');
  21. $db = mysql_select_db('newsy');
  22.  
  23. $tresc = str_replace("\n","<br />",$tresc);
  24. $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");
  25.  
  26. if($wstaw) {
  27. echo "<font color='green'>";
  28. echo "Dodano nowego newsa. ";
  29. echo "<a href='index.php'>Zobacz newsa</a>";
  30. echo "</font>";
  31. }
  32. else {
  33. echo "<font color='red'>";
  34. echo "Nie dodano newsa!";
  35. echo "</font>";
  36. }
  37.  
  38. }
  39.  
  40. else {
  41. echo "<font color='red'>";
  42. echo "Uzupełnij wszystkie pola!";
  43. echo "</font>";
  44. }
  45. }
  46.  
  47. ?>
  48.  



index.php
  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', 'haslo')
  4. or die('Nie połączono!');
  5. or die('Nie połączono!');
  6.  
  7.  
  8.  
  9. $wynik = mysql_query("SELECT * FROM news ORDER by 'id' DESC")
  10. or die('Błąd zapytania');
  11.  
  12.  
  13.  
  14. if(mysql_num_rows($wynik) > 0) {
  15. while($r = mysql_fetch_array($wynik)) {
  16.  
  17. echo "Tytuł: <i>".$r[1]."</i>";
  18. echo "<br />";
  19. echo "Autor: ".$r[2]."<br />";
  20. echo "Treść: ".$r[3]."<br />";
  21. echo "Data i godzina: ".$r[4]."<br />";
  22. echo "<br /><br />";
  23.  
  24. }
  25.  
  26. }
  27. ?>



Edycja i usuwanie też jest prosto zrobić ale na razie nie mam czasu na więcej żeby Ci napisać ale spróbuj ten kod, czy chodzi Ci o mniej więcej coś takiego. Jest to oczywiście baaardzo prosty skrypt, bez wizualizacji, bez sprawdzania ani nic winksmiley.jpg
Mishczu
Witam to znowu ja...
Trochę się próbowałem bawić z tym skryptem, ale niestety coś chyba robię ja nie tak :\
W tym pierwszym na początku dodałem
Kod
<?php


Zmieniłem nazwę drugiego pliku na news.php.
Pouzupełniałem nazwy baz danych i hasla w dwóch plikach.
No i wywala błąd przy próbie dodania newsa. Próbowałem na Webserwie i zewnetrznym hostingu.
W w mysql istnieje ta baza 20337.

http://csclassic.eu5.org/skrypt/inny/add.php
Tak to wygląda...

A tutaj te pliki zedytowane przezemnie:

add.php
  1. <?php
  2.  
  3. $data = date("d.m.Y H:i:s");
  4.  
  5. echo '<center><b>Dodawnie nowego newsa</b><br /><br />';
  6. echo '<form action="add.php?dodaj=yes" method="post"><table border=0>';
  7. echo '<tr><td align=right>Tytuł newsa:</td><td><input type="text" name="tytul" /></td></tr>';
  8. echo '<tr><td align=right>Autor:</td><td><input type="text" name="autor" /></td></tr>';
  9. echo '<tr><td align=right>Tre?ć:</td><td><textarea name="tresc" rows=5 cols=30></textarea></td></tr>';
  10. echo '<tr><td align=right>Data:</td><td><input type="text" name="data" value="'.$data.'" /></td></tr>';
  11. echo '</table><input type="hidden" name="akcja" value="dodawanie" /><br /><input type="submit" value="Wyslij"/></center></form>';
  12.  
  13. if ($_GET["dodaj"]=="yes") {
  14.  
  15. $tytul = $_POST['tytul'];
  16. $autor = $_POST['autor'];
  17. $tresc = $_POST['tresc'];
  18. $data = $_POST['data'];
  19.  
  20. if ($tytul and $autor and $tresc and $data) {
  21. $polaczenie = mysql_connect('localhost', '20337', 'xxx');
  22. $db = mysql_select_db('20337');
  23.  
  24. $tresc = str_replace("\n","<br />",$tresc);
  25. $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");
  26.  
  27. if($wstaw) {
  28. echo "<font color='green'>";
  29. echo "Dodano nowego newsa. ";
  30. echo "<a href='news.php'>Zobacz newsa</a>";
  31. echo "</font>";
  32. }
  33. else {
  34. echo "<font color='red'>";
  35. echo "Nie dodano newsa!";
  36. echo "</font>";
  37. }
  38.  
  39. }
  40.  
  41. else {
  42. echo "<font color='red'>";
  43. echo "Uzupełnij wszystkie pola!";
  44. echo "</font>";
  45. }
  46. }
  47.  
  48. ?>


news.php
  1. <?php
  2.  
  3. mysql_connect('localhost', '20337', 'xxx')
  4. or die('Nie połączono!');
  5. or die('Nie wybrano bazy!');
  6.  
  7.  
  8.  
  9. $wynik = mysql_query("SELECT * FROM news ORDER by 'id' DESC")
  10. or die('Błąd zapytania');
  11.  
  12.  
  13.  
  14. if(mysql_num_rows($wynik) > 0) {
  15. while($r = mysql_fetch_array($wynik)) {
  16.  
  17. echo "Tytuł: <i>".$r[1]."</i>";
  18. echo "<br />";
  19. echo "Autor: ".$r[2]."<br />";
  20. echo "Treść: ".$r[3]."<br />";
  21. echo "Data i godzina: ".$r[4]."<br />";
  22. echo "<br /><br />";
  23.  
  24. }
  25.  
  26. }
  27. ?>
Mefiuu
Z chęcią Ci pomogę ale jeśli może być to dopiero jutro po poludniu lub wieczorkiem bo teraz mam dostęp z telefonu i brak możliwości sprawdzenia;) a jaki błąd wywala? Pewno jakaś literówka mi albo Tobie się zdarzyła;)
Mishczu
Kod
Nie dodano newsa!


Czyli chyba nie ma błędu w kodzie tylko może ja coś źle zrobiłem, ale tam w control panelu są takie dane i je wpisałem...
Kod
DataBase name: 20337
DataBase username: 20337
DataBase password: equal with account password
DataBase host: localhost
nospor
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie
a zobaczysz jakie masz bledy
Mefiuu
sprawdź może dokładnie bazę czy masz w niej wymaganą tabelę i pola aby te dane umieścić, bo skoro dodajesz wszystko jak trzeba to powinno działać ... Ja skopiowałem ten kod co podałem i zmieniłem tylko login, hasło do bazy i nazwę tabeli i wszystko śmiga jak należy i jak powinno winksmiley.jpg
Mishczu
To ten skrypt nie powininen sam tworzyć tabel? Jak nie, to ja nie tworzyłem... blinksmiley.gif
Więc w PMA muszę wpisać nazwę i ilość pól do bazy. Ile ma być do tego skryptu?
Mefiuu
nie, nie tworzy winksmiley.jpg nie masz nigdzie przecież bloku kodu odpowiedzialnego za tę kwestię ;P

  1. $wstaw = mysql_query("INSERT INTO news SET tytul='$tytul', autor='$autor', tresc='$tresc', data='$data'");


ten kawałek mówi Ci : tabela news. Pola tytul, autor, tresc, data. Oczywiście zależy to od tego do czego Ci ten skrypt, co chcesz umieszczać w bazie. Ja mam akurat takie pola bo umieszczam tam newsy. Ponadto możesz sobie wybrać inną niż "newsy" nazwę tabeli oraz dodać pole id z auto_increment i z primary key winksmiley.jpg

Napisz później czy Ci działa a jak nie to jeszcze pisz ;]
Mishczu
Wszystko działa! Wielkie dzięki po prostu nie zrobiłem tej tabeli. Musiałem teraz też poprawić w pliku news.php to:

  1. if(mysql_num_rows($wynik) > 0) {
  2. while($r = mysql_fetch_array($wynik)) {
  3.  
  4. echo "Tytuł: <i>".$r[1]."</i>";
  5. echo "<br />";
  6. echo "Autor: ".$r[2]."<br />";
  7. echo "Treść: ".$r[3]."<br />";
  8. echo "Data i godzina: ".$r[4]."<br />";
  9. echo "<br /><br />";


na

  1. if(mysql_num_rows($wynik) > 0) {
  2. while($r = mysql_fetch_array($wynik)) {
  3.  
  4. echo "Tytuł: <i>".$r[0]."</i>";
  5. echo "<br />";
  6. echo "Autor: ".$r[1]."<br />";
  7. echo "Treść: ".$r[2]."<br />";
  8. echo "Data i godzina: ".$r[3]."<br />";
  9. echo "<br /><br />";


Nie wiem dlaczego, ale w piewszej sytuacji pomijało jedną linijkę a teraz jest dobrze. Sprawdziłem na webserwie, wszystko działa. Teraz sobie coś z nim dalej pokombinuję smile.gif
Mefiuu
No to dobrze winksmiley.jpg

Rzeczywiście ! Przecież tabele liczy się od [0] a nie od [1] ... wybacz, mój błąd winksmiley.jpg

Temat chyba 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-2024 Invision Power Services, Inc.