Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logiczny problem
Forum PHP.pl > Forum > Bazy danych > MySQL
Special11
Witam, otóż mam taki trochę logiczny problem. Nie znam się dobrze na MySql, ale chcę zrobić żeby każdy użytkownik mógł mieć tylko 1 rekord, czyli generalnie chcę jakoś powiązać dwa pola - ID usera oraz Klucz. W skrypcie PHP podawało by się jedynie ID użytkownika, a on by zwracał Klucz przypisany do tego ID. Jak to wykonać? Myślałem o złączeniu CHAR w coś w stylu "userid-klucz", ale szukam prostszego rozwiązania.
kokers
a czemu id nie może być tym kluczem?
Special11
Bo ten skrypt chciałbym wgrać na forum, będzie pobierał on ID użytkownika i na tej podstawie sprawdzał czy istnieje jego klucz w bazie danych, jeśli nie to pozwoli mu wpisać go, a jeśli tak to zwróci go.
mat-bi
Niezbyt rozumiem, ale:

  1. CREATE TABLE 'users'(
  2. 'id' INT AUTO_INCREMENT NOT NULL,
  3. 'klucz' VARCHAR(200))


  1. <?php
  2.  
  3. mysql_pconnect('serwer', 'login', 'haslo');
  4.  
  5. $this = mysql_query("SELECT ('klucz') FROM 'users' WHERE id='$_GET['id'];
  6. $this = mysql_fetch_assoc($this);
?

Co prawda w tym kodzie przydałoby się PDO i zabezpieczenie przed SQL Injection, ale dla jasności tego nei podałem

Special11
Ale jak to właściwie ma działać? AUTO_INCREMENT to chyba tylko indeks?

Chyba, że chodziło Ci z tym indeksem, aby po podaniu do MySql ID użytkownika on sprawdzał jaki jest indeks pola 'ID' i zwrócił ten sam indeks tylko, że z pola 'Klucz', np.:

Robię 3 pola: USERID, INDEX oraz KLUCZ. Skrypt teraz pobierze ID usera i porówna z USERID, sprawdzi jaki INDEX ma USERID i pobierze KLUCZ[INDEX], np. KLUCZ[123]

Trochę namieszałem :S

E: OK, udało mi się zrobić już wiem o co chodzi. Tylko powiedzcie / dajcie linki jak się zabezpieczyć przed tym SQL Injection? :/

E2: OK, już wszystko rozwiązałem, thx anyway za pomoc
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.