Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Porównanie zmiennych
Forum PHP.pl > Forum > Przedszkole
Bociek1989
Witam, jak porównać dane ze zmiennych z bazą mysql?

W adresie otrzymuje zmienne $login i $actkey, tabela wyglada tak:

usid | login | pass | actkey | inne tam..

Chodzi o to aby skrypt sprawdził czy $actkey pasuje to &login, ma to być skrypt uaktywniajacy konto po kliknieciu w link.

Jednak moja znajomośc php jest taka a nie inna i coś nie moge wymyśleć nic fajnego..
luniak
  1. <?php
  2. if(@mysql_result(mysql_query("SELECT COUNT(id) FROM tabela WHERE `login` = '$login' AND `actkey` = '$actkey'"), 0)==1)
  3.   {
  4. // tu dajesz co  am zrobić jeżeli jest ok
  5. }
  6.  
  7. ?>
MateuszS
  1. <?
  2.  
  3. $zapytanie = mysql_query("SELET login,actkey FROM `nazwa_tabeli`");
  4.  
  5. $wynik = mysql_fetch_array($zapytanie);
  6.  
  7. if( $kodaktywuj == $wynik['actkey'] ) {
  8. echo 'Aktywowałeś konto'; } else {
  9. echo 'Coś nie tak'; }
  10.  
  11. ?>


O to chodziło? Wcześniej musi być zdefiniowany kod aktywujący dla użytkownika a potem dodanie wpisu o akt. konta.
Bociek1989
Zaraz ogarniemy czy zadziała, podstawa to to że mnie nakierowaliście bo ja jestem zero z baz mysql.. winksmiley.jpg

Dzięki wielkie!

Coś nie tak..

  1. <?php
  2. if( isset($_REQUEST['login']) and isset($_REQUEST['actkey']) )
  3. {
  4. $name=$_GET['login'];
  5. $actkey=$_GET['actkey'];
  6.  
  7. $zapytanie = mysql_query("SELECT username,usractkey FROM `users`");
  8.  
  9. $wynik = mysql_fetch_array($zapytanie);
  10.  
  11. if( $actkey == $wynik['usractkey'] ) {
  12. echo 'Aktywowałeś konto'; } else {
  13. echo 'Coś nie tak'; }
  14.  
  15. echo $name;
  16. echo $actkey;
  17. echo $wynik;
  18.  
  19. }
  20. ?>


Wywala mi "Coœ nie takbociek1232805626Array"

I o co chodzi? wstydnis.gif
MateuszS
1. Nawiązałeś połączenie z bazą?
2. Nie zamknąłeś znacznika "}" po pierwszym "if"
Bociek1989
Połączenie było, znacznik zamknięty ale nadal zmienna $wynik ma wartość Array..
luniak
bo wynik jest tablicą

z takimi polami
  1. <?php
  2. $wynik['usractkey']
  3. $wynik['usractname']
  4. ?>
Bociek1989
Dodam, ze

  1. SELECT username,usractkey FROM `users`


W phpmyadmin'ie wyświetla poprawną tabele wyników więc zapytanie jest dobre, połączenie jest, zmienne z adresu dobrze przechwytuje.. grr.. :]

Cytat(luniak @ 24.01.2009, 16:09:39 ) *
bo wynik jest tablicą


Heh nie pomyślałem, ale tak czy inaczej czemu nie działa? Na moje amatorskie oko powinno
luniak
ale co konkretnei ci nie dziala?

wywołanie
  1. <?php
  2. echo $wynik;
  3. ?>


spowoduje wyświetlenie info że $wynik to tablica :/

ale chyba wiem gdzie jest problem:

  1. <?php
  2. $zapytanie = mysql_query("SELECT username,usractkey FROM `users`");
  3. ?>


powoduje wybranie WSZYSTKICH rekordów z danej tabeli z bazy

zmien ten kod na to:

  1. <?php
  2. $zapytanie = mysql_query("SELECT username,usractkey FROM `users` WHERE `username` = '$name'");
  3. ?>
Bociek1989
Nooo właśniiiee... Już jest ok, dzięki wielkie i wybaczcie za zamieszanie winksmiley.jpg

Chodziło o to piekielne zapytanie
luniak
nie ma za co tongue.gif polecam sie na przyszłość winksmiley.jpg
Bociek1989
I znowu coś nie tak, nie wiem co wzielo takiego nieuka jak ja na programowanie biggrin.gif


  1. <?php
  2. $zapytanie="SELECT usract FROM `tabela` WHERE usrnam='$username'";
  3. $idzapytania=mysql_query($zapytanie);
  4.    
  5. if($idzapytania==1)
  6. {
  7. echo 'logowanie';
  8. }
  9. else
  10. {
  11. echo 'nieaktywne konto';
  12. echo $username;
  13. echo $idzapytania;
  14. }
  15. ?>


Wyświetla mi: nieaktywne kontouserResource id #7 sciana.gif
piaseq
Myślę, że powinieneś zacząć od kursu php, mysql i manuala. Poczytaj jak działają funkcje, których używasz i co zwracają. W manualu znajdziesz proste przykłady jak korzystać z tych funkcji. Zadając co chwila kolejne pytanie i nie wyciągając wniosków z poprzednich odpowiedzi nieczego się nie nauczysz.
luniak
Powinno być tak

  1. <?php
  2. $zapytanie="SELECT usract FROM `tabela` WHERE usrnam='$username'";
  3. $idzapytania=mysql_query($zapytanie);
  4.  
  5. $dane = mysql_fetch_assoc($idzapytania);  
  6.  
  7. if($dane[usract]==1)
  8. {
  9. echo 'logowanie';
  10. }
  11. ?>


Musi być tak dlatego ze samo mysql_query() wywyoluje tylko zapytanie do bazy a nie zwraca danych pobranych
Bociek1989
Aha.. Dzięki ^^'
Ja sie nie ucze php i reszty, bo to mi kompletnie nie potrzebnie a nie mam aktualnie dużo czasu.. Takie "pisanie" to stara pasja - kiedyś coś umiałem i mnie teraz naszło.
Tak więc piaseq dzięki za radę, ale nie skorzystam... Wbrew pozorom staram się sam rozwiązywać problemy i wyciągać wnoski. smile.gif

luniak dzięki za radę i proste wytłumaczenie winksmiley.jpg

Ale skoro jest tak jak mówisz, to cholere istnieje takie coś jak wysyłanie zapytania bez zwracania danych?
erix
Cytat
to cholere istnieje takie coś jak wysyłanie zapytania bez zwracania danych?

mysql_unbuffered_query" title="Zobacz w manualu PHP" target="_manual.
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.