![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam. Tworze swój pierwszy skrypt w php, doszedłem do momentu, w którym nie mogę sobie poradzić i prosił bym o pomoc doświadczonych kolegów.
Mianowicie mam formularz, potrzebuje porównać czy to co zostanie przekazane w formularzu znajduje się w pewnej tabeli w bazie danych. Dokładniej: 1. W formularzu wpisuje login użytkownika i chce sprawdzić czy użytkownik o takim loginie istnieje w bazie. Więc dane z formularza przekazuje sobie do zmiennej, wszystko jest ok. 2. Połączenie z bazą danych mam ok, bez błędów. 3. Chce sprawdzić czy login przekazany w zmiennej znajduje się w kolumnie username tabeli user i jeśli tak pobrać userid użytkownika o tym username(loginie), jeśli nie wyświetlić stosowny komunikat. Nie wiem za bardzo jak się do tego zabrać. Prubuje coś z takim zapytaniem Kod $query = 'SELECT username, userid FROM user where username == $zmienna'; ale po pierwsze nie działa, a po drugie nawet gdyby zadziałało i wyświetli mi to to nie wiem jak to przypisać potem zmiennej... Może kombinuje za bardzo, nie wiem, jest to mój pierwszy skrypt w php, przeczytałem tylko jedną książkę o php 5 jednak mało jest tam o pracy z bazami danych. Proszę o jakąś pomoc jeśli to możliwe, jesli nie to chociaż jakieś wskazówki lub polecenie dobrej literatury, która pomoże mi rozwiązać moje problemy. Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 18 Dołączył: 10.03.2008 Skąd: Dębno Ostrzeżenie: (0%) ![]() ![]() |
Zapytanie ma być:
Kod SELECT username, userid FROM user WHERE username='$zmienna'
Ten post edytował K4mil94 26.03.2009, 15:52:25 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 320 Pomógł: 53 Dołączył: 18.09.2007 Skąd: Radom Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 726 Pomógł: 129 Dołączył: 10.01.2008 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
W zapytaniu nie == tylko =, dodatkowo string w zapytaniu powinien być w ' i ', a samo zapytanie powinno być w " i "
Potem sprawdzasz:
Ten post edytował Maxik 26.03.2009, 15:53:38 -------------------- Pomogłem? Kliknij przycisk Pomógł pod pomocnym Ci postem.
http://maxik.me/ |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Użyłem tego zapytania, nawet tak by samo id zwracało tylko czyli w moim przypadku:
Kod <?php $query = "SELECT userid FROM user WHERE username='".$wyzywaj."'"; $wynik = mysql_query($query); echo ("Wynik rowna sie: $wynik"); ?> Zrobiłem tak by sprawdzić co zwraca mi zapytanie. Powinno mi zwrócić samą liczbę, (1 w przypadku który testuje) a zwraca mi zawsze taki ciąg: Kod Wynik rowna sie: Resource id #2 Co może powodować ten błąd? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 18 Dołączył: 10.03.2008 Skąd: Dębno Ostrzeżenie: (0%) ![]() ![]() |
To spróbuj. Ten post edytował K4mil94 27.03.2009, 13:12:35 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 176 Pomógł: 18 Dołączył: 5.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
dzięki, zmodyfikowałem trochę kod kolegi K4mil94 i działa tak jak chce. Mam jeszcze tylko mały problem ze składnią zapytania insert. Mianowicie mam tak:
Kod if (mysql_num_rows($wynik)==1 && mysql_num_rows($wynik2)==1){ $zapis = "INSERT INTO Bitwy (id_bitwy, wyzywajacy, wyzywany, status) VALUES ('NULL, $id, $id2, ".$status."')"; W ogóle mi nie zapisuje do bazy nic. id_bitwy jest ustawione na auto_increment, czytałem, że wtedy trzeba wstawić Null w zapytaniu żeby poprawnie dodało może jednak trzeba inaczej. Skrypt nie zgłasza błędu, po prostu się nie zapisuje nic. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 18 Dołączył: 10.03.2008 Skąd: Dębno Ostrzeżenie: (0%) ![]() ![]() |
Tak zobacz. I czy na id_bitwy masz ustawiony Primary Key ? Ten post edytował K4mil94 27.03.2009, 16:40:54 |
|
|
![]()
Post
#10
|
|
![]() Newsman Grupa: Moderatorzy Postów: 4 005 Pomógł: 548 Dołączył: 7.04.2008 Skąd: Trzebinia/Kraków ![]() |
~K4mil94 jak podajesz to rób to poprawnie.
-------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
dzięki, zmodyfikowałem trochę kod kolegi K4mil94 i działa tak jak chce. Mam jeszcze tylko mały problem ze składnią zapytania insert. Mianowicie mam tak: Kod if (mysql_num_rows($wynik)==1 && mysql_num_rows($wynik2)==1){ $zapis = "INSERT INTO Bitwy (id_bitwy, wyzywajacy, wyzywany, status) VALUES ('NULL, $id, $id2, ".$status."')"; W ogóle mi nie zapisuje do bazy nic. id_bitwy jest ustawione na auto_increment, czytałem, że wtedy trzeba wstawić Null w zapytaniu żeby poprawnie dodało może jednak trzeba inaczej. Skrypt nie zgłasza błędu, po prostu się nie zapisuje nic. nie wiem czy to wazne ale czy nie powinno byc tak ? :
a pozniej tak jak panowie wyzej Ci napisali ;-) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
tak, id bitwy jest primary key-em.
Testowałem oba kody niestety przy obydwóch to samo czyli dalej nie zapisuje. Czy może mieć to znaczenie, że w tej tabeli mam jeszcze kilka kolumn w których nie zapisuje nic przy tym zapytaniu? jednak mają ustawione, "Null" na tak więc chyba powinno być ok. Generalnie struktura mojej tabeli wygląda tak: Naprawdę już nie wiem co jest nie tak. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 302 Pomógł: 18 Dołączył: 10.03.2008 Skąd: Dębno Ostrzeżenie: (0%) ![]() ![]() |
@piotrek mi działa tak jak podałem.
------------------------------------------ Zmień z int na tinyint |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy to wazne ale czy nie powinno byc tak ? :
a pozniej tak jak panowie wyzej Ci napisali ;-) nie, tak jak jest. W formularzu są podawane dwa nicki userów, skrypt sprawdza czy userzy z takimi nickami rzeczywiście są w tabeli user jeśli są to wtedy zapisuje ich id do tabeli bitwy, w polach id1, i id2. Może na pierwszys rzut oka trochę nie logicznie ale chodzi o to by była możliwość zapisywania tylko tych id userów którzy są w bazie w tabeli z użytkownikami. Ten post edytował pzcjnr 27.03.2009, 17:26:59 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
nie, tak jak jest. W formularzu są podawane dwa nicki userów, skrypt sprawdza czy userzy z takimi nickami rzeczywiście są w tabeli user jeśli są to wtedy zapisuje ich id do tabeli bitwy, w polach id1, i id2. Może na pierwszys rzut oka trochę nie logicznie ale chodzi o to by była możliwość zapisywania tylko tych id userów którzy są w bazie w tabeli z użytkownikami. nie wiem czy rozumiem dobrze ale jesli masz tabele i w niej umieszczone jakies dane (np. niki) i chcesz je uzupelnic to moze uzyj:
"bitwy" powinienes napisac z malej bo tak masz w bazie z tego co widze Ten post edytował InosU31 27.03.2009, 17:43:01 |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 176 Pomógł: 18 Dołączył: 5.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Nie tak
ale tak
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 26.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem czy rozumiem dobrze ale jesli masz tabele i w niej umieszczone jakies dane (np. niki) i chcesz je uzupelnic to moze uzyj:
"bitwy" powinienes napisac z malej bo tak masz w bazie z tego co widze nie, tabela bitwy jest w 100 % czysta. Żadnych danych. Dane mam w tabeli user. Tabela user jest główną tabelą mojego skryptu forum (vBulletin) Pisze małą modyfikacje i na jej potrzeby utworzyłem nową tabelę (bitwy) i do niej chce zapisać dane. EDIT: Już wszystko ok. Miałem bardzo głupi błąd na który zwrócił mi uwagę InosU31. Mianowicie w zapytaniu miałem "bitwy' z dużej a należało użyć z małej tak jak w bazie co jest zresztą logiczne. Dziękuje wszsytkim za pomoc. Ten post edytował pzcjnr 27.03.2009, 19:39:46 |
|
|
![]()
Post
#18
|
|
![]() Grupa: Zarejestrowani Postów: 221 Pomógł: 14 Dołączył: 11.03.2009 Skąd: Lubaczów Ostrzeżenie: (0%) ![]() ![]() |
to w takim razie moze tak zadziala (nie jestem pewien bo nie sprawdzilem):
musisz najpierw wykonac zapytanie ktore wybierze ci userow:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 07:13 |