Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Przypisywanie każdemu użytkownikowi id i wyciąganie danych na stronę
Forum PHP.pl > Forum > Przedszkole
Croos22
Witam.
Mam rejestrację i logowanie na stronie.W bazie mam następujące tabele id,nick,hasło,email.
Głównie chodzi mi o tabelkę id jak mogę zrobić aby każdy zarejestrowany użytkownik i jego dane (w przyszłości będzie więcej talelek z danymi niż teraz)były wyciągane na stronę a strona miała adres http://strona.pl/users.php?users=1 (gdzie numer 1 jest identyfikatorem) lub po prostu http://strona.pl/users/admin/ (admin czyli przykładowy nick zarejestrowanego użytkownika).Ja mam takie coś zrobić?Z góry dziękuje za każdą pomoc.
kapuch
Dajesz polu ID auto_increment
Pozniej:
  1. $query = mysql_query("SELECT * FROM `users` WHERE id='{$_GET['id']}'");
  2. if($dane=mysql_fetch_array($query))
  3. {
  4. echo $dane['nick'];
  5. echo $dane['mail'];
  6. // itd...
  7. }


@down, a Ty czytasz co ktos przed Toba napisal? Bo mysle ze dokladnie to samo napisalem :]
ghastblood
http://forum.php.pl/index.php?showtopic=13...rt=#entry699638
myślę że pomoże. często pojawią się na forum dużo o wyświetlanie artykułów, userów po id. Nawet niektóre fora np: phpbb3 wyświetla posty po id
Croos22
Zrobiłem to tak
  1. <?php
  2. mysql_connect('','','');
  3. mysql_select_db("uzytkownicy");
  4.  
  5. $query = mysql_query("SELECT * FROM `users` WHERE id='{$_GET['id']}'");
  6. if($dane=mysql_fetch_array($query))
  7. {
  8. echo $dane['nick'];
  9. echo $dane['mail'];
  10. // itd...
  11. }
  12.  
  13. ?>


lecz wywaliło mi błąd
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/x/dane.php on line 6
ghastblood
czy w tabeli users istnieje rekord id questionmark.gif jeżeli nazywa się inaczej to zmień to w zapytaniu


  1. $query = mysql_query("SELECT * FROM `users` WHERE NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID='{$_GET['id']}'");

np:
  1. $query = mysql_query("SELECT * FROM `users` WHERE user_id='{$_GET['id']}'");


jeżeli chcesz aby w adres wyglądał tak http://strona.pl/users.php?users=1

musisz w $_GET[''] wpisać users zamiast id
tomm
źle masz skontruowane(połączone) zapytanie, u CIebie apostrof ID=' łączy się z GET[' a apostrof id' z ]}'

$query = mysql_query("SELECT * FROM `users` WHERE NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID='{$_GET['id']}'");

spróbuj:

'SELECT * FROM `users` WHERE NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID = '.$_GET['id']
Croos22
Mała pomyłka poprawiłem lecz nadal mam ten sam błąd.
  1. <?php
  2. mysql_connect('','','');
  3. mysql_select_db("uzytkownicy");
  4.  
  5. $query = mysql_query("SELECT * FROM `uzytkownicy` WHERE id='{$_GET['id']}'");
  6. if($dane=mysql_fetch_array($query))
  7. {
  8. echo $dane['nick'];
  9. echo $dane['mail'];
  10. // itd...
  11. }
  12.  
  13. ?>


Baza wygląda tak:
  1. CREATE TABLE `uzytkownicy` (
  2. `id` INT( 11 ) NOT NULL AUTO_INCREMENT ,
  3. `nick` VARCHAR( 32 ) NOT NULL ,
  4. `haslo` VARCHAR( 40 ) NOT NULL ,
  5. `email` VARCHAR( 40 ) NOT NULL ,
  6. `ip` VARCHAR( 20 ) NOT NULL ,
  7. PRIMARY KEY ( `id` )
  8. );




A co jest u mnie NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID?
ghastblood
Sprawdziłem u mnie śmiga
  1. mysql_connect("localhost", "root", "")or die("Nie można nawiązać połączenia z bazą");
  2. mysql_select_db("test")or die("Wystąpił błąd podczas wybierania bazy danych");
  3.  
  4. $query = mysql_query("SELECT * FROM `uzytkownicy` WHERE id='{$_GET['id']}'");
  5. if($dane=mysql_fetch_array($query))
  6. {
  7. echo $dane['nick'];
  8. echo $dane['email'];
  9. }
  10.  


adres strona.pl/user.php?id=1"
kapuch
Cytat(tomm @ 20.07.2010, 23:37:53 ) *
źle masz skontruowane(połączone) zapytanie, u CIebie apostrof ID=' łączy się z GET[' a apostrof id' z ]}'

$query = mysql_query("SELECT * FROM `users` WHERE NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID='{$_GET['id']}'");

spróbuj:

'SELECT * FROM `users` WHERE NAZWA_POLA_ODPOWIADAJĄCEGO_ZA_ID = '.$_GET['id']

Chyba raczej nie, bo to pomiedzy klamrami jest wykonywane w pierwszej kolejnosci, takze gdy to trafia jako zapytanie do mysql, to tych apostrofow juz nie ma, tak samo jak samej nazwy $_GET['id'], pozostaje tylko WHERE id='login'
Jakby bylo $_GET["id"], wtedy by sie laczyly...

@Up - No to mamy odpowiedz, ze kod jest ok, dzieki ghastblood, bo juz mialem zamiar odpalac serwer...ufff (moge wrocic do filmu) smile.gif


PS. Autor tematu: A ty utworzyles baze o nazwie 'uzytkownicy' i tabele o tej samej nazwie? Czy poprostu pomyliles baze z tabela?
Bo moze tutaj jest blad...

Cytat
mysql_select_db("uzytkownicy");

i

CREATE TABLE `uzytkownicy`...

Sprawdz lepiej

Zycze owocnej nocy winksmiley.jpg
Croos22
Super dzięki wielki od miesięcy marzyłem aby dodać takie urozmaicenie na moją stronę.
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.