Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] REPLACE - zapytanie
Forum PHP.pl > Forum > Przedszkole
boro11
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ę?
Ruch Radzionków
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. }
boro11
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.