Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] REPLACE - zapytanie
boro11
post 15.04.2012, 13:07:48
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


Witam!
Mam taki kod:

  1. if (isset($_POST['Join']))
  2. {
  3. $zapytanie = "INSERT INTO test_sites ( id, nick, site, nickinsite, status) VALUES (' ', '$nick', '$site', '$nickinsite', '$status')";
  4. mysql_query($zapytanie) or die(mysql_error());
  5. echo "<p>Please wait till your application will be rewieved by our team.</p><p>You can close this window now.</p>";
  6. }


Jest on odpowiedzialny za dodanie do bazy danych wartości podanych w formularzu (nick/site/nickinsite/status). Za każdym razem dodaje do bazy na nowo nawet jeśli wartość się powtarza.

Powstaje wtedy taka sytuacja:



Gdzie rekord drugi był w tabeli wcześniej, dlatego rekord pierwszy ma status "Decline" dzieje się tak dlatego, że się dublują. Chciałbym aby w sytuacji takiej, że już istnieje taki "nickinsite" jak podał user aktualizowało ten bieżący zamiast dodawać nowy rekord. Do zaktualizowania w takim wypadku jest tylko wartość "nick" oraz usunięcie nie potrzebnego (1 rekordu -który miałby być dodany).

Czytałem trochę i znalazłem funkcją(?) REPLACE

próbowałem ją zastosować w następujący sposób:

  1. if (isset($_POST['Join']))
  2. {
  3. $zapytanie = "REPLACE test_sites ( id, nick, site, nickinsite, status) VALUES (' ', '$nick', '$site', '$nickinsite', '$status')";
  4. mysql_query($zapytanie) or die(mysql_error());
  5. echo "<p>Please wait till your application will be rewieved by our team.</p><p>You can close this window now.</p>";
  6. }


ale nie działa. Czy muszę pozamieniać indeksy czy coś innego w bazie danych żeby zaczęło to działać tak jak sobie tego życzę?
Go to the top of the page
+Quote Post
Ruch Radzionków
post 15.04.2012, 14:26:03
Post #2





Grupa: Zarejestrowani
Postów: 311
Pomógł: 25
Dołączył: 29.08.2011

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


to powino być to
  1. $sel = mysql_query("SELECT * FROM test_sites");
  2. while($sele = mysql_fetch_array($sel))
  3. {
  4. if($sele[nickinsite] == $nickinsite)
  5. {
  6. $del = "DELETE FROM test_sites WHERE id='$sele[id]'";
  7. $del = mysql_query("$del");
  8. }
  9. }


--------------------
Pomogłem daj pomógł
Go to the top of the page
+Quote Post
boro11
post 15.04.2012, 15:27:53
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 9.07.2010
Skąd: Warszawa

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


no okej to kasuje, ale nie dodaje/updatuje nic, więc robie tylko polowe z tego co powinno. Nie ma jakiejś funkcji do tego typu replace?
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: 14.08.2025 - 14:06