Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Problem ze sprawdzeniem bazy danych
kubw19
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


Cześć
Otóż mam taki problem.
Chciałem napisać taki skrypt, co sprawdza, czy dany rekord w bazie danych już istnieje.
Jeśli istnieje, to go z aktualizuje, a jeśli nie istnieje to go doda.
Napisałem coś takiego, ale TO NIE DZIAŁA (IMG:style_emoticons/default/sad.gif)

  1. if(mysql_query("Select * From map WHERE id='$id'") === false )
  2. {mysql_query("INSERT INTO map (ID, NAME, LAT, LNG) VALUES ('$id', '$name', '$lat', '$lng')");}
  3.  
  4. else
  5. {
  6. mysql_query("UPDATE map SET lat='$lat', lng='$lng' WHERE name='$name' ");
  7. }


PROSZĘ O POMOC, żeby zadziałało. Nie wiem, co robię źle. Wyczytałem, że mysql_query zwraca wartość true i false

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
sada
post
Post #2





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


A jakieś połączenie z bazą , wybór bazy jest?

Poza tym dlaczego pierwszy SELECT jest WHERE id= , a nie WHERE name=
i czy zmienna $id, czy $name jest już wtedy znana?

Ten post edytował sada 30.04.2012, 16:24:30
Go to the top of the page
+Quote Post
kubw19
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


Połączenie z bazą jest, update działa, tylko nie dodaje nowego rekordu
Tak, zmienne są znane

Ten post edytował kubw19 30.04.2012, 16:25:54
Go to the top of the page
+Quote Post
kubw19
post
Post #4





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


Myślę, że to jest błąd z tym false. Normalnie jak dodaje rekord to on się dodaje. Tylko właśnie jak wstawiłem go w tą instrukcję warunkową nie chce działać (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
kubw19
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


Sprawdziłem, niestety to nie to (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
sada
post
Post #6





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


to zmień jeszcze to ID w insercie na name

przepraszam w SELECT

wg. mnie powinno być:

  1. if(mysql_query("Select * From map WHERE name='$name'") === false )


Ten post edytował sada 30.04.2012, 16:44:35
Go to the top of the page
+Quote Post
kubw19
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


Nadal nie działa, ale i tak dziękuje za pomoc
Go to the top of the page
+Quote Post
sada
post
Post #8





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


Jeśli uważasz , że to ten false spróbuj tak:

  1. $query=mysql_query("Select * From map WHERE id='$id'");
  2. if(mysql_num_rows($query)==0){
Go to the top of the page
+Quote Post
kubw19
post
Post #9





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 12.03.2011

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


DZIĘKIIII (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/smile.gif) (IMG:style_emoticons/default/smile.gif) ZADZIAŁAŁO!!! JESTEŚ WIELKI!!!
Go to the top of the page
+Quote Post
mortus
post
Post #10





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


Cytat(kubw19 @ 30.04.2012, 16:47:17 ) *
Wyczytałem, że mysql_query zwraca wartość true i false

Funkcja mysql_query nie zwraca nigdy prawdy TRUE. Zwraca FALSE, jeśli zapytanie się nie wykona, bo np. jest źle sformułowane, albo zwraca obiekt MySQL Result Object, który przechowuje wyniki zapytania, przy czym pusty zbiór wyników to nadal prawidłowy obiekt MySQL Result.

Ten post edytował mortus 30.04.2012, 17:36:05
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: 4.10.2025 - 20:45