Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie
PHP

REPLACE INTO wielkość liter

PHP

  • Zamknięty Temat jest zamknięty
7 odpowiedzi w tym temacie

#1 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2010 11:50

Wykonuje takie zapytanie sql
$zapytanie = "REPLACE INTO `hash` SET `word` = '$word' ,`hash` = '$hash'";

dzięki temu gdy wykonam je dwa razy z tym samym word wpisy się nie zdublują ale nadpiszą jednakże
działa to też kiedy wordy różnią się wielkością liter czyli asd i AsD to i tak rekordy się nadpiszą no i nie mogę wy myśleć jak to naprawić
  • +
  • -
  • 0

#2 mgr inż. Pavulon

    C35H60Br2N2O4

  • Przyjaciel

Reputacja: 1 742
Godlike

  • Postów:6 881
  • Steam:steam
  • Imię:Konrad
  • Lokalizacja:Koniecpol
Offline

Napisano 27.06.2010 12:47

A możesz to napisać po polskiemu ? Jakieś znaki interpunkcyjne wskazane, bo napisanie ponad 40 słów bez kropki czy przecinka to przesada :!:
  • +
  • -
  • 0

#3 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2010 15:42

heh więc tak
gdy używałem
insert into rekordy się dublowały tzn. tabelka była taka
word hash
asd jakis_hash
asd jakis_hash

i tak dalej po prostu każde wywołanie skryptu dodawało nowy rekord
rozwiązanie znalazłem na necie czyli
REPLACE INTO
teraz gdy wywołuje zapytanie z takim samym word jeśli nie ma rekordu o takim word jest dodawany nowy jeśli jest to go nadpisuję ale niestety funkcja nie bierzę pod uwagę wielkości liter tzn . asd to dla niej to samo co AsD
czyli gdy mam w tabeli rekord z word asd i wywołam zapytanie z wordem AsD zostanie on nadpisany a ja chcę żeby powstał dla niego nowy rekord
Metodę porównywania napisów ustawiłem na latin1_general_cs

Użytkownik DarkGL edytował ten post 27.06.2010 18:27

  • +
  • -
  • 0

#4 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 27.06.2010 17:32

Zrób to tak, jedno z pól oznacz atrybutem "UNIQUE":
CREATE  TABLE `hash` ( `world` VARCHAR( 255  )  NOT  NULL ,
 `hash` VARCHAR( 255  )  NOT  NULL ,
 UNIQUE ( `hash`  )) ENGINE  =  MYISAM ;

I wykonuj zapytania na zasadzie:
INSERT INTO `hash` (`word`, `hash`) VALUES ('$word', '$hash') ON DUPLICATE KEY UPDATE word='$word';

Dzięki temu jeśli pole o wartości "hash" będzie miało się powtórzyć zostanie zaktualizowane tylko pole "word" o nową wartość - bo chyba taki był cel?
  • +
  • -
  • 1

serwer-1.png
IP: ts3.cserwerek.pl


#5 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2010 18:27

o działa a tak spytam co robi UNIQUE ?
a i zapraszam do testowania
http://darkgl.amxx.p...ncrypt&decrypt/

fajnie można poczatować xD

Użytkownik DarkGL edytował ten post 27.06.2010 18:31

  • +
  • -
  • 0

#6 Portek

    Kończymy zabawę, permanentna emerytura!

  • Przyjaciel

Reputacja: 976
Master

  • Postów:3 007
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Częstochowa
Offline

Napisano 27.06.2010 19:25

Ładnie to tak logować kody md5 do bazy? Co robi unique? Deklaruje jedno (lub kilka) pól jako unikalne, gdy będziesz do bazy próbował dodać rekord z polem (w tym przypadku) "hash" zobaczysz error ponieważ taki klucz w bazie się już znajduje, a z racji że opatrzony jest wartością "UNIQUE" zdublowany być nie może.

Żeby jednak móc operować na takim wpisie, na końcu zapytania INSERT masz wpis ON DUPLICATE KEY UPDATE word='$word'; który powoduje aktualizacje w tym wypadku pola "word" gdy pole "hash" w bazie się znajduje i ma wartość którą ponownie chcesz do bazy wpisać - lekko chaotycznie ale mam nadzieję że rozumiesz.
  • +
  • -
  • 0

serwer-1.png
IP: ts3.cserwerek.pl


#7 DarkGL

    Nie oddam ciasteczka !

  • Autor tematu
  • Administrator

Reputacja: 6 553
Godlike

  • Postów:11 976
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Napisano 27.06.2010 19:32

b94ab5fe5ae454ffd628a76da668f382
i
2541391100ad09ca753bad9a5143ef84
  • +
  • -
  • 0

#8 Adminek AMXX.PL

    Admin :)

  • Bot

Reputacja: 156
Profesjonalista

  • Postów:7 476
  • Lokalizacja:AMXX.PL
Offline

Napisano 27.06.2010 19:44

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Skoro z Ciebie taki "hakier": 236d31d939a43bffb0aa9bc34c98af86

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL





Również z jednym lub większą ilością słów kluczowych: PHP

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych