Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP] Newsy oparte na bazie, Proszę o naprowadzenie
Mefiuu
post 2.01.2010, 18:31:38
Post #1





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Witam. Chciałbym Was dzisiaj prosić o krótkie "naprowadzenie" na właściwy trop, nie o gotowca. Ewentualnie o "łopatologiczne" wytłumaczenie kwestii winksmiley.jpg
Chcę zrobić na swoją stronę skrypt newsów oparty na bazie danych. Musiałbym to zrobić wg. schematu, który sobie "umyślałem". Jeśli coś źle rozumuję to proszę poprawcie mnie.

1. Plik login.php gdzie logujemy się na konto admina.
2. Tam tylko proste menu, do wyboru Dodaj news | Edytuj news | Usuń news
3. Po kliknięciu na Dodaj news pojawia się pole tekstowe, miejsce na tytuł, treść, autora i datę.
4. Następnie te dane przesyłam metodą POST do pliku np. wyslij.php gdzie jest kod odpowiedzialny za wstawienie tego do bazy danych.
5. Includuję na index.php newsy z bazy danych.

Tę kwestię dość rozumiem. Gorzej jest z edycją. Jak to ma wyglądać?

1. Klikam Edytuj news i pojawiają mi się pola tekstowe, miejsce na tytuł, treść, datę i autora. Jak w to "wstawić" dane z MySQL? Czy do tego kodu w pole values muszę wstawić jakiś kod pobierający z bazy danych ? :
Kod
<input type="text" name="nazwa" [b]value="teskt"[/b] />

2. Następnie po wczytaniu, zredagowaniu klikam na "Edytuj" i za pomocą tego kodu (tylko zmodyfikowanego na moje potrzeby) edytować?:
Kod
UPDATE nazwa_tabeli SET nazwa_pola1=wartosc_pola1, nazwa_pola2=wartosc_pola2 [WHERE warunek]


Prosiłbym bardzo o pomoc, ewentualnie przydatne linki, do dobrych kursów PHP i MySQL, albo książek, które polecacie do nauki.Szukałem pomocy w różnych systemach newsów ale są one dla mnie zbyt "zawiłe" i niestety nie wiem jak rozgryźć tę edycję. Pozdrawiam.
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 19:01:54
Post #2





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Twoja tabela z newsami wygląda miej więcej tak:

id_news | tytul | tresc | autor | data

Edytując poszczególnego newsa masz w url jego unikalny ID zapisany w bazie i zapisujesz go do hiddena.
I teraz klikajac na Edytuj wysylasz równiez ID edytowanego newsa metoda post.

zatem zapytanie sql wygladało by tak:

  1. mysql_query("update news set tytul='".$_POST['tytul']."', tresc='".$_POST['tresc']."', autor='".$_POST['autor']."' where id_news=".$_POST['id_news']);


Go to the top of the page
+Quote Post
Mefiuu
post 2.01.2010, 19:23:28
Post #3





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


ale czy to co napisałeś, za pomocą update w mysql nie zapisze mi tego od razu w mysql? A jak te dane "wczytać" do pola input, aby poprawić np. jakąś literówkę ?
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 19:30:54
Post #4





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(Mefiuu @ 2.01.2010, 19:23:28 ) *
ale czy to co napisałeś, za pomocą update w mysql nie zapisze mi tego od razu w mysql? A jak te dane "wczytać" do pola input, aby poprawić np. jakąś literówkę ?


Zapisze no ale o to chyba chodzi biggrin.gif

Wczytanie pól:

  1. $res = mysql_query("select tytul, tresc, autor from newsy where id_news=".$_GET['id_news']);
  2. $row = mysql_fetch_array($res);

  1. Tytuł: <input type="text" name="tytul" value="<?php echo $row['tytul']?>" />
  2. Treść: <textarea name="tresc"><?php echo $row['tresc']?></textarea>
  3. Autor: <input type="text" name="autor" value="<?php echo $row['autor']?>" />


Ten post edytował kusiu 2.01.2010, 19:33:35
Go to the top of the page
+Quote Post
Mefiuu
post 2.01.2010, 19:39:05
Post #5





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


o jaaaa... teraz to wygląda o wiele jaśniej... Oczywiście pomógł. Mogę wiedzieć skąd się uczyłeś PHP i MySQL? możesz polecić coś ?

Wybacz jeszcze że zapytam, ale jak później to nadpisać? bo jeśli to wyślę "normalnie" to mi doda chyba kolejnego newsa prawda?

Ten post edytował Mefiuu 2.01.2010, 19:41:23
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 19:47:08
Post #6





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(Mefiuu @ 2.01.2010, 19:39:05 ) *
o jaaaa... teraz to wygląda o wiele jaśniej... Oczywiście pomógł. Mogę wiedzieć skąd się uczyłeś PHP i MySQL? możesz polecić coś ?

Wybacz jeszcze że zapytam, ale jak później to nadpisać? bo jeśli to wyślę "normalnie" to mi doda chyba kolejnego newsa prawda?


Książka, www, staż winksmiley.jpg

Nie doda, bo update edytuje insert dodaje rekord. Przy edycji jest warunek WHERE id_news, tu wysylasz mu ID edytowanego newsa.
Go to the top of the page
+Quote Post
Mefiuu
post 2.01.2010, 19:49:07
Post #7





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Dziękuję serdecznie. Jeśli będę miał jakiś problem to napiszę jeszcze na pw do Pana jeśli można lub tutaj.

Hmmm... A jak zrobić listę rozwijaną, żeby wyświetliło mi te moje wszystkie newsy?

Ten post edytował Mefiuu 2.01.2010, 19:50:34
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 19:56:32
Post #8





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(Mefiuu @ 2.01.2010, 19:49:07 ) *
Dziękuję serdecznie. Jeśli będę miał jakiś problem to napiszę jeszcze na pw do Pana jeśli można lub tutaj.

Hmmm... A jak zrobić listę rozwijaną, żeby wyświetliło mi te moje wszystkie newsy?


Nie jestem Pan smile.gif

To może wyświetlaj tytuły newsów na stronie, jako odnośnik

  1. $res = mysql_query("select id_news, tytul from news");
  2. while($row = mysql_fetch_array($res)){
  3. echo "<a href='?id_news=".$row['id_news']."'>".$row['tytul']."</a><br />";
  4. }


Ten post edytował kusiu 2.01.2010, 19:57:52
Go to the top of the page
+Quote Post
Mefiuu
post 2.01.2010, 21:12:04
Post #9





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Narazie próbuję odtworzyć sobie dodawanie newsów do bazy danych. Mam takie 2 pliki. dodaj.html i dodaj.php. Zapewne to jakaś literówka albo jakiś błąd ale nie mogę go znaleźć...

dodaj.html
Kod
<html>
<head>
<title> Dodaj newsa </title>
</head>
<body>
<form action="dodaj.php" method="post">


<p>Podaj tytuł newsa: <br />
<br />
<textarea name="tytul" cols="100" rows="1">Tu wpisz tytuł newsa</textarea>
</p>

<p>Podaj treść newsa: <br />
<br />
<textarea name="tresc" cols="100" rows="10">Tu wpisz treść swojego newsa, który pojawi się na stronie głównej</textarea>
</p>

<input type=submit value="Zatwierdź">
</form>
</body>
</html>


dodaj.php
Kod
<html>
<head>
<title> Zatwierdzenie </title>
</head>
<body>

<?

$tytul = $_POST['tytul'];
$tresc = $_POST['tresc'];
$autor = $_POST['autor'];
$data = date('Y-m-d');

$baza = "db******";

$tabela = "newsy";

$polaczenie = mysql_connect("mysql*.yoyo.pl", "db******", "mojetajnehaslo");

$wybierz = mysql_select_db($baza, $polaczenie);

$wstaw = "INSERT INTO $tabela VALUES(tytul, tresc, autor, data)";

$rezultat = mysql_query($wstaw, $polaczenie);

if ($rezultat) {
echo "<h2>Do tabeli zostały dodane następujące dane:</h2><br>
<b>Treść:</b>&nbsp;<i>$tresc</i><br>
<b>Autor:</b>&nbsp;<i>$autor</i><br>
<b>Data dodania:</b>&nbsp;<i>$data</i><br>";
}
else {
echo "<h2>Do tabeli nie dodano danych</h2>";
}

mysql_close($polaczenie);

?>

<a href="index.php">Zobacz newsa </a>

</body>
</html>


Proszę o pomoc winksmiley.jpg
Go to the top of the page
+Quote Post
melkorm
post 2.01.2010, 21:17:06
Post #10





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. $wstaw = "INSERT INTO $tabela VALUES(tytul, tresc, autor, data)";


To zapytanie jest błędne, jako wartości musisz dać zmienne otrzymane POST'em lub GET'em.

A na pewno to zapytanie generuje błąd smile.gif

P.S. Pamiętaj by zawsze opisać co NIE działa i czym się objawia owe nie działanie.

@kusiu,
... i nie dał gotowca winksmiley.jpg

Ten post edytował melkorm 2.01.2010, 21:19:42


--------------------
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 21:17:11
Post #11





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


  1. $wstaw = "INSERT INTO $tabela VALUES('".$tytul."', '".$tresc."', '".$autor."', '".$data."')";


melkorm był szybszy biggrin.gif

Ten post edytował kusiu 2.01.2010, 21:18:56
Go to the top of the page
+Quote Post
Mefiuu
post 2.01.2010, 21:27:01
Post #12





Grupa: Zarejestrowani
Postów: 371
Pomógł: 18
Dołączył: 23.11.2008

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


Hmmm... No tak, trzeba przecież brakuje tam zmiennych, fakt... Jednak po skopiowaniu Twojego kodu kusiu, dalej pokazuje komunikat: do tabeli nie dodano danych. Próbowałem pousuwać cudzysłowy, kropki i różne kombinacje ale nic nie pomogło... Chyba muszę się wziąć za jakiś kurs porządnie albo książkę kupić bo nic mi nie wychodzi...
Go to the top of the page
+Quote Post
melkorm
post 2.01.2010, 21:35:57
Post #13





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Zapraszam do przeczytania:
Lektura

Szczególnie dział o raportowaniu błędów, bo widzę ich parę winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
kusiu
post 2.01.2010, 21:44:42
Post #14





Grupa: Zarejestrowani
Postów: 163
Pomógł: 10
Dołączył: 24.01.2006

Ostrzeżenie: (30%)
XX---


Cytat(Mefiuu @ 2.01.2010, 21:27:01 ) *
Hmmm... No tak, trzeba przecież brakuje tam zmiennych, fakt... Jednak po skopiowaniu Twojego kodu kusiu, dalej pokazuje komunikat: do tabeli nie dodano danych. Próbowałem pousuwać cudzysłowy, kropki i różne kombinacje ale nic nie pomogło... Chyba muszę się wziąć za jakiś kurs porządnie albo książkę kupić bo nic mi nie wychodzi...


zrób sobie echo ze zmiennej $wstaw i wyświetlone zapytanie wklej do phpmyadmina i uruchom. Zobacz tam jakie masz błędy.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 5.07.2025 - 14:05