Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Problem z ponownym zapisem(zapytanie)
microh
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 5.11.2006

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


Witam!
Tworze dział ostatnio szukane, do wyszukiwarki na swoja strone.

Problem polega na tym, ze jeśli wpisze jakąs fraze to ona prawidłowo się zapisze, ale gdy odswierze strone, zapisze się ponownie.

wyglada to mw. tak:

1. aaa
2. aaa
3. zabawki
4. zabawki
5. zabawki
6. zabawki
7. zabawki
8. zabawki
9. zabawki
10. zabawki
11. lol
12. gry
13. gry
14. lol
15. lol

Wiec staram się zrobic zapytanie, dzięki któremu sprawdze, czy ostatnio dodany do bazy jest identyczny z tym co teraz się dodaje:

  1. <?php
  2.  $ten_ostatni = mysql_query("select tresc from ostatnio ORDER BY id DESC LIMIT 1 ");
  3. if( $tekst != mysql_fetch_array($ten_ostatni) )
  4. $sql_query = mysql_query("INSERT into ostatnio (tresc) values ('{$tresc}')");
  5. ?>


Co w zapytaniu zrobiłem źle?

Ten post edytował microh 25.08.2007, 11:00:39
Go to the top of the page
+Quote Post
in5ane
post
Post #2





Grupa: Zarejestrowani
Postów: 1 335
Pomógł: 34
Dołączył: 9.11.2005
Skąd: Wrocław

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


Jak dobrze rozumiem, to pierw musisz sprawdzić czy dana fraza jest w bazie i jeżeli nie ma to dopiero wtedy dodać do bazy. Możesz to zrobić za pomocą instrukcji warunkowej.

Pozdro (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


P.S.: Jeżeli nie o to chodzi to sorry (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
drPayton
post
Post #3





Grupa: Zarejestrowani
Postów: 890
Pomógł: 65
Dołączył: 13.11.2005
Skąd: Olsztyn

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


  1. <?php
  2. mysql_fetch_array($ten_ostatni)
  3. ?>
zwraca Ci tablicę a nie jeden element (tu: tekstowy)

  1. <?php
  2. $ten_ostatni = mysql_query("select tresc from ostatnio ORDER BY id DESC LIMIT 1 ");
  3. $row = mysql_fetch_array($ten_ostatni);
  4. if( $tekst != $row[0]['tresc'] )
  5. (...)
  6. ?>

Pisałem z głowy, tego: $row[0]['tresc'] nie jestem pewien, ale już wiesz gdzie tkwi błąd...

Inna sprawa, że tego typu problem lepiej jest rozwiązać poprzez blokadę ponownego wysyłania formularza po jednym (poprawnym) użyciu. Np headerem przekierować na inną (czy nawet tą samą stronę), zapisać info do sesji i sprawdzać, czy był wysyłany formularz i wiele innych metod które znajdziesz na forum (czy na googlach) pod hasłem: "blokada ponownego wysyłania formularza po odświeżeniu"

Ten post edytował drPayton 27.08.2007, 12:39:02
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: 25.08.2025 - 18:59