Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Newsy oparte na bazie danych
Mefiuu
post
Post #1





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

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


Witam. Niedawno próbowałem stworzyć sobie skrypt newsów oparty na plikach tekstowych ale doszedłem do wniosku że "pomęczę się" z bazami danych. Poczytałem trochę i zrobiłem coś takiego:


dodaj.html

Kod
<html>
<head>
<title>Dodawanie danych</title>
</head>

<body>
<h2>Dodawanie newsów</h2>

<form action="polaczenie.php" method="post">
Treść:<br>
<input type=text name="tresc" size=300><br>
Autor:<br>
<input type=text name="autor" size=15><br>
Data dodania <b>rrrr-mm-dd</b>:<br>
<input type=text name="data" size=30><br><br>
<input type=submit value="dodaj dane"><br>
</form>

</body>

</html>




a następnie
polaczenie.php

Kod
<html>
<head>
<title> Baza danych </title>
</head>

<body>

<?


$baza = "db859***";

$tabela = "newsy";

$polaczenie = mysql_connect("mysql2.yoyo.pl", "db859***", "********");

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

$wstaw = "INSERT INTO $tabela VALUES (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>";
}



?>

</body>
</html>




I po wpisaniu jakichś danych pokazuje mi komunikat że dodano do bazy, jednak wyświetla:

Treść:
Autor:
Data:

I nie pokazuje co takiego wstawiło, po czym w bazie także nic nie ma. Jak to zmienić?
Z góry dziękuje i pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
slawny
post
Post #2





Grupa: Zarejestrowani
Postów: 214
Pomógł: 26
Dołączył: 7.11.2007
Skąd: Warszawa

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


Masz złe zapytanie do bazy. Bez $ przy zmiennych, pododawaj i powinny byc ok. No i idbierz najpierw te zmienne z formularza

Ten post edytował slawny 7.06.2009, 19:35:57
Go to the top of the page
+Quote Post
melkorm
post
Post #3





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

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


o_O.

@slawny, zapytanie jest złe, ale nie z powodu tego iż nazwa tabeli jest pod postacią zmiennej z `$`, ale zapewne dlatego że jest tam ustawiony klucz i nie zgadzają się parametry.

zastosuj może konstrukcję w postaci :
  1. INSERT INTO $tabela SET `nazwa_kolumny` = 'wartość' , `nazwa_kolumny2` = 'wartość2', ... ;


lub daj jako 1 parametr NULL'a, a jeżeli to nie pomoże dorzuć raportowanie błędów mysql'a i pokaż jakim komunikate mrzucił (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

edit:
oczywiście zgadzam się co do odbioru danych z formularza, najlepiej to polecam jakikolwiek kurs php+mysql ... których na forum (linków) jest multum a że mam dzisiaj lenia to będziesz musiał sam sobie ich poszukać :]

... a zapewniam Ciebei że tam znajdziesz wszelkie nurtujące Ciebie pytanka (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował melkorm 7.06.2009, 19:43:39
Go to the top of the page
+Quote Post
Mefiuu
post
Post #4





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

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


Wstawiłem coś takiego :

$wstaw = "INSERT INTO $tabela SET `tresc` = '$tresc' , `autor` = '$autor', `data` = '$data' ";

ale też jednak nie działa nadal. Cóż, będę musiał poszukać jakiegoś kursu, bo coś nie idzie za dobrze ... :/ nie bardzo nawet rozumiem o czym mówicie...
Go to the top of the page
+Quote Post
mszm
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 22.04.2009

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


Spróbuj:

  1. INSERT INTO $tabela (`tresc`,`autor`,`data`)
  2. VALUES ($tresc,$autor,$data);


Mieszasz insert i update.
Go to the top of the page
+Quote Post
Wicepsik
post
Post #6





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


  1. <title>Dodawanie danych</title>
  2. </head>
  3.  
  4. <h2>Dodawanie newsów</h2>
  5.  
  6. <form action="polaczenie.php" method="post">
  7. Treść:<br>
  8. <input type=text name="tresc" size=300><br>
  9. Autor:<br>
  10. <input type=text name="autor" size=15><br>
  11. <input type=submit value="dodaj dane"><br>
  12. </form>
  13.  
  14. </body>
  15.  
  16. </html>


  1. <html>
  2. <head>
  3. <title> Baza danych </title>
  4. </head>
  5.  
  6. <body>
  7.  
  8. <?
  9.  
  10. $tresc = $_POST['tresc'];
  11. $autor = $_POST['autor'];
  12. $data = date('Y-m-d');
  13.  
  14.  
  15. $baza = "db859***";
  16.  
  17. $polaczenie = mysql_connect("mysql2.yoyo.pl", "db859***", "********");
  18.  
  19. $wybierz = mysql_select_db($baza, $polaczenie);
  20.  
  21. $wstaw = 'INSERT INTO `newsy` VALUES ("'.$tresc.'", "'.$autor.'", "'.$data.'")';
  22.  
  23. $rezultat = mysql_query($wstaw);
  24.  
  25. if ($rezultat) {
  26. echo '<h2>Do tabeli zostały dodane następujące dane:</h2><br>
  27. <b>Treść:</b> <i>'.$tresc.'</i><br>
  28. <b>Autor:</b> <i>'.$autor.'</i><br>
  29. <b>Data dodania:</b> <i>'.$data.'</i><br>';
  30. }
  31. else {
  32. echo "<h2>Do tabeli nie dodano danych</h2>";
  33. }
  34.  
  35.  
  36.  
  37. ?>
  38.  
  39. </body>
  40. </html>

poczytaj http://pl2.php.net/manual/pl/function.date.php


Wszyscy gadacie o tym problemie a on nawet nie dodał do zmiennej danych z formularza

Ten post edytował Wicepsik 7.06.2009, 20:22:54
Go to the top of the page
+Quote Post
Mefiuu
post
Post #7





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

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


@Wicepsik : rzeczywiście, pokazuje że dodało dane.

Teraz chciałbym na stronie index.php wczytać te dane. Przeczytałem coś z kursu i posklejałem ale znów nie wyszło... Proszę o wyrozumiałość:

Kod
<html>
<head>
<title> Główna </title>
</head>

<body>

<?

$baza = "db85****";

$tabela = "newsy";

$polaczenie = mysql_connect("mysql2.yoyo.pl", "db85****", "********");

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

$pobierz = "SELECT `tresc`,`autor`,`data` FROM `news` ";

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

if ($rezultat) {
echo "<h2>Najnowszy news:</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>Brak newsów</h2>";
}

?>



</body>
</html>



W sumie to tylko pozmieniałem dane i jest źle. A gdzie jest to tak dobrze wytłumaczone ?
Go to the top of the page
+Quote Post
mszm
post
Post #8





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 22.04.2009

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


Poczytaj: http://pl2.php.net/manual/pl/function.mysql-fetch-assoc.php
Go to the top of the page
+Quote Post
tharos
post
Post #9





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 20.02.2008

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


  1. <?php
  2. $rezultat = mysql_query($pobierz);
  3.  
  4. if ($rezultat) {
  5. $rw = mysql_fetch_assoc($rezultat);
  6. echo "<h2>Najnowszy news:</h2><br>
  7. <b>Treść:</b>&nbsp;<i>$rw['tresc']</i><br>
  8. <b>Autor:</b>&nbsp;<i>$rw['autor']</i><br>
  9. <b>Data dodania:</b>&nbsp;<i>$rw['data']</i><br>";
  10. }
  11. else {
  12. echo "<h2>Brak newsów</h2>";
  13. }
  14. ?>
Go to the top of the page
+Quote Post
Mefiuu
post
Post #10





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

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


Dziękuje wszytkim, już wiem jak to zrobić. teraz tylko pomodeluję i będzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Wicepsik
post
Post #11





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


Gdzie znalazłeś że w mysql_query dodaje się połączenie z bazą?
Go to the top of the page
+Quote Post
Maxik
post
Post #12





Grupa: Zarejestrowani
Postów: 726
Pomógł: 129
Dołączył: 10.01.2008
Skąd: Gdańsk

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


@Wicepsik:
mysql_query" title="Zobacz w manualu PHP" target="_manual drugi parametr jest opcjonalny
Go to the top of the page
+Quote Post
Mefiuu
post
Post #13





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

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


Wszystko działa perfekcyjnie, dziękuję wszystkim za pomoc. Mam tylko pytanie. Jak ustalić hierarchię? Tzn. Aby najnowszy news był na początku ?
Go to the top of the page
+Quote Post
phpion
post
Post #14





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Poczytaj o ORDER BY w MySQL.
Go to the top of the page
+Quote Post
Mefiuu
post
Post #15





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

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


Jesteś genialny, dziękuję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Przepraszam za post pod postem ale chciałbym jeszcze prosić Was forumowicze o pomoc. Mam ten skrypcik, całkiem dobrze działa. Zrobiłem tak, aby newsy pokazywały się w tabelce. Dodałem kod:

Kod
<html>
<head>
<title> Główna </title>
</head>

<body>

<?

$baza = "db859223";

$tabela = "newsy";

$polaczenie = mysql_connect("mysql2.yoyo.pl", "db859223", "2qu0m93i");

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


$zapytanie = "SELECT `tresc`,`autor`,`data` FROM `newsy` ORDER BY `data` DESC";
$idzapytania = mysql_query($zapytanie);


echo '<table border="1">';
while ($wiersz = mysql_fetch_row($idzapytania))
{
  echo '<tr><td>';
  echo '<center>';
  echo  $wiersz[0];
  echo '</center>';
  echo '</td></tr>';
  echo '<tr><td>';
  echo '<p align="left">';
  echo 'Dodał : &nbsp;&nbsp;&nbsp;';
  echo  $wiersz[1];
  echo '</p>';
  echo '</td>';
  echo '<td>';
  echo '<p align="right">';
  echo 'Data : &nbsp;&nbsp;&nbsp;';
  echo $wiersz[2];
  echo '</p>';
  echo '</td></tr>';
}
echo '<table>';
  echo '<br />';
  echo '<br />';



?>



</body>
</html>


Wszystko jest tak jak chciałem poza tym, aby jeden news miał swoją tabelkę, bylo np. 20px przerwy i kolejny żeby miał swoją.
Go to the top of the page
+Quote Post
mszm
post
Post #16





Grupa: Zarejestrowani
Postów: 10
Pomógł: 1
Dołączył: 22.04.2009

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


Kod
while ($wiersz = mysql_fetch_row($idzapytania))
     {
     echo '<table border="1">';
      echo '<tr><td>';
      echo '<center>';
      echo  $wiersz[0];
      echo '</center>';
      echo '</td></tr>';
      echo '<tr><td>';
      echo '<p align="left">';
      echo 'Dodał : &nbsp;&nbsp;&nbsp;';
      echo  $wiersz[1];
      echo '</p>';
      echo '</td>';
      echo '<td>';
      echo '<p align="right">';
      echo 'Data : &nbsp;&nbsp;&nbsp;';
      echo $wiersz[2];
      echo '</p>';
      echo '</td></tr>';
      echo '<table>';
      echo '<br />'
     }


Ten post edytował mszm 8.06.2009, 23:30:11
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 12:57