![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 24.01.2012 Skąd: Madrid Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam taki problem. Jestem początkujący w PHP i udało mi się napisać skrypt na swoją stronę, by na moim blogu pod każdą tzw. notką można było dokonać komentarz. Baza danych została utworzona zgodnie ze wskazówkami, formularz również... Niestety wszystko to idzie do tzw. jednego kotła, i pod każdą notką wyskakują mi te same komentarze i nie wiem, jak zrobić, by pod każdą notką pojawiały się indywidualne komentarze napisane własnie do danej notki. Baza danych wygląda tak: Cytat SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE TABLE IF NOT EXISTS `komentarze` ( `id` int(7) unsigned NOT NULL AUTO_INCREMENT, `url` char(45) COLLATE utf8_polish_ci NOT NULL, `nick` char(35) COLLATE utf8_polish_ci NOT NULL, `data` datetime NOT NULL, `ip` char(15) COLLATE utf8_polish_ci NOT NULL, `komentarz` text COLLATE utf8_polish_ci NOT NULL, PRIMARY KEY (`id`), KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci COMMENT='komentarze do artykułów' AUTO_INCREMENT=1 ; Pola komentarzy tak Cytat <div id='komentarze'>"; $zapytanie2 = "SELECT * FROM komentarze WHERE url = '$adres' ORDER BY id"; mysql_query("set names iso-8859-2;"); $rezultat2 = mysql_query ($zapytanie2); while ($dane = @mysql_fetch_array ($rezultat2, MYSQL_ASSOC)) { echo' <div> <div class="komentarz_info"><b>',$dane['nick'],'</b> (',$dane['data'],')</div> <div class="komentarz_tresc">',nl2br($dane['komentarz']),'</div> </div>'; } if (isset($komunikat)) { echo '<div class="komunikat">'.$komunikat.'</div>'; } echo "<br>"; echo "<div class='separator'></div>"; echo "<br>"; if (file_exists('../utils/formularz.php')) include('../utils/formularz.php'); else include('utils/formularz.php'); Natomiast sam skrypt na komentarze tak: Cytat <?PHP // Pobieramy adres IP komentującego $IP = $_SERVER['REMOTE_ADDR']; // Pobieramy adres aktualnej strony bez nazwy domeny $adres = $_SERVER['REQUEST_URI']; if (file_exists('../utils/sql.php')) include('../utils/sql.php'); else include('utils/sql.php'); // Nawiązuje połączenie i wybiera bazę danych. $dbc = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) OR die ('Nie mogłem połączyć się z MySQL-em: ' . mysql_error() ); @mysql_select_db(DB_NAME) OR die ('<b>Nie udało mi się wybrać bazy danych:</b> ' . mysql_error() ); // Jeżeli został wciśnięty przycisk "wyślij" if (isset ($_POST['wys_kom'])) { // Jeżeli nick jest pusty if (empty($_POST['nick'])) { $komunikat .= '<p>Podaj swój nick (imię).</p>'; } else { $nick = ($_POST['nick']); } // Jeżeli komentarz jest pusty if (empty($_POST['komentarz']) ) { $komunikat .= '<p>Napisz komentarz.</p>'; } else { $koment = stripslashes($_POST['komentarz']); } //Jeżeli nie ma żadnego błędu if (!isset($komunikat)) { $zapytanie = "INSERT INTO komentarze (url, nick, komentarz, data, ip) VALUES ( '$adres', '$nick', '$koment', NOW(), '$IP')"; if ($rezultat = mysql_query ($zapytanie)) { mysql_close(); header ("Location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); exit(); } else { $komunikat = '<p>Przepraszamy za chwilowe usterki. Wysłanie komentarza nie było możliwe. Spróbuj pózniej.</p>'; } } } ?> Proszę o lekką podpowiedź jak to zrobić, bo początkowo myślałem, by przypisać zmienne do kolumn w MySql, ale nie wiem, czy to miałoby sens , a jeśli, to jak to wgl zrobic? Z góry dzięki za pomoc, czekam na odpowiedzi, pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 654 Pomógł: 121 Dołączył: 27.10.2007 Skąd: Poznań, Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem jak masz rozwiązaną sprawę z notkami, ale na 99% każda z nich posiada swój unikalny identyfikator ID. Możesz go wykorzystać do powiązania komentarzy z daną notką. W tym celu zamiast pola URL dajesz pole note_id. Aby teraz odczytać komentarze dla danej notki wykonujesz zapytanie:
Pozdrawiam -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 24.01.2012 Skąd: Madrid Ostrzeżenie: (0%) ![]() ![]() |
no więć zmieniłem to o czym napisałeś, więć teraz wpisując komentarz nie wyświetla się on nigdzie. Chodzi o to, ze to wszystko dzieje się na jednej podstronie - dlatego pojawił sie problem, bo gdy formularze umieszczam na różnych podstronach to tych problemów nie ma i wszystko wyświetla się tam gdzie powinno. Próbowałem już z id w divach i bazie danych pojawiało się np. /blog.php#3 ale własnie wszystkie komentarza wrzuccało mi do #3 a #2 i #1 były puste, natomiast wcześniejszy problem który opisałem polegał na tym, ze komentarze pojawiały sie pod kazdą z notek... Jak nie urok to *** itd
![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To co podał ci askone jest poprawnym rozwiązaniem. Przestań więc kombinować już z tymi adresami tylko pokaż swoje poprawki pod to co podał askone.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 24.01.2012 Skąd: Madrid Ostrzeżenie: (0%) ![]() ![]() |
a nie da sie przypisać tu np coś $_POST['komentarz'] ?
do słowa komentarz $_POST['komentarz$nr'] i wtedy każde pole identyfikowałoby się swoim adresem id który przypisałbym notce ;> To co podał ci askone jest poprawnym rozwiązaniem. Przestań więc kombinować już z tymi adresami tylko pokaż swoje poprawki pod to co podał askone. jest poprawne? no to co jeszcze trzeba zmieniń? bo gdy zaminiłem URL na ID to tak jak pisałem - komentarz wcięło, w baze pokazało, ze znajduje sie pod url /blog.php, jednak nie wyświetlało go na stronie ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat jest poprawne? no to co jeszcze trzeba zmieniń? bo gdy zaminiłem URL na ID to tak jak pisałem - komentarz wcięło, w baze pokazało, ze znajduje sie pod url /blog.php, jednak nie wyświetlało go na stronie Ile razy można pisać.... bo masz coś źle. ALe nie wiemy co źle zrobiłeś bo nie pokazałeś kodu po poprawkach ani struktury bazy po poprawkach.Tym razem użyj właściwego bbcode do pokazania kodu! -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 24.01.2012 Skąd: Madrid Ostrzeżenie: (0%) ![]() ![]() |
nie wiem który bbcode sie używa, bo nigdy nie zadawłem pytań na forach odnośnie PHP. Co ja bede pokazywał po poprawkach? Wszystko to samo tylko zamiast URL dałem to co askone napisał i tyle. nic nie zmieniałem w bazie ani nic.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat nie wiem który bbcode sie używa, bo nigdy nie zadawłem pytań na forach odnośnie PHP Włącz myślenie. Skoro przy pisaniu bbcode masz bbcode o nazwie PHP to chyba logiczne ze do kodu PHP masz go użyć :/Temat: Tematyka i zasady panujace na forum Przedszkole Cytat . Co ja bede pokazywał po poprawkach? Wszystko to samo tylko zamiast URL dałem to co askone napisał i tyle. nic nie zmieniałem w bazie ani nic. To nic dziwnego ze ci nie dziala. askone podał ci ogólny schemat postępowania, ty go miałeś zaadoptować do siebie a nie bezmyślnie skopiować.
Powód edycji: [nospor]: Na życzenie użytkownika zmieniam formę na bardziej oczywistą
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:04 |