Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Jak to napisac?
Forum PHP.pl > Forum > Przedszkole
Miskov
Witam, jestem nowy na tym forum. Dopiero zaczynam przygode z pisaniem w php i mysql i mam pytanie. Mysle ze lagodnie potraktujecie poczatkujacego smile.gif

Potrzebuje chyba prostego skryptu, wyglada on tak:
W bazie danych mam 50 kodow dostepu, osoba wchodzi na moja strone www.mojastrona.pl/index.php i jej oczom pojawia sie strona:

Index.php:
Nick: [tutaj_odwiedzajacy_wpisuje_swoj_nick]
Kod dostepu: [tutaj_wpisuje_kod_dostepu]

Wyslij(przycisk)

Po kliknieciu na "wyslij" jezeli kod dostepu jest poprawny skrypt usuwa go z bazy danych, a wsadza do niej nick wpisany przez odwiedzajacego, dodatkowo przenosi odwiedzajacego pod inny adres (np. www.mojastrona.pl/strona.php)


Teraz druga czesc skryptu:

Plik dane.php bedzie odczytywal z bazy danych nicki ktore wpisaly poprawny kod dostepu i wyswietlal je na podstronie www.mojastrona.pl/dane.php, dodatkowo potrzebna mi jest opcja zebym mogl z poziomu przegladarki (przez dane.php) usunac niekotre nicki (o pliku dane.php bede wiedzial tylko ja wiec nie jest konieczna autoryzacja)

Jak takie cos powinno wygladac?
memory
  1. <?php
  2. If (isset($wyslij)){
  3.  
  4. $wyni = SELECT kod FROM kody WHERE kod LIKE '%$kod%';    //szukanie kodu w bazie danych
  5.  
  6. if (mysql_num_rows($wyni)>0) {      //jezeli znalazl to :
  7.  
  8.  
  9. $zapytanie = "UPDATE kody SET kod = $nick WHERE kod=$kod";    //zamienia nick na kod
  10.  
  11. header('Location: strona.php');  //przekierowanie na twoja strone
  12.  
  13. }
  14. else echo "brak takiego kodu";
  15.                                                       // w przeciwnym wypadku bra kkodu
  16.  
  17. }?>




Tak mniej wiecej bedzie wygladal kod. Oczywiscie trzeba dodac polaczenie z baza, wpisac swoje dane.


2)

Wystraczy przeczytac kurs
Miskov
Oczywiscie "pomogl" dla Ciebie ;]

Zmienilem troche zdanie, kod nie bedzie podnieniany na nick. Zostanie usuniety a w innej tabeli zostanie wpisany nick, tzn w tablemi "kody" beda tylko kody a w tabeli "gracze" beda tylko ludzie ktorzy poprawnie wpisali kod.

Kody moga nie byc pobieranie za kolejnoscia, tzn. np. ostatni rekord w tabeli moze byc uzyty jako pierwszy itd.
W zwiazku z tym mam pytanie:
Jezeli zrobie tak jak mowiles to zostana przepatrzone wszystkie rekordy z tabeli kody, i wybrany ten pasujacy?


A co jesli napisze tak:
Kod
$wyni="SELECT `kod` FROM `kody` WHERE `kod`=$kod";
$usun="DELETE FROM kody WHERE 'kod'=$wyni";

Bedzie to samo?
Jestem poczatkujacy wiec prosze sie nie smiac jezeli zrobilem jakis blad smile.gif
memory
Cytat
Jezeli zrobie tak jak mowiles to zostana przepatrzone wszystkie rekordy z tabeli kody, i wybrany ten pasujacy?


Tak poniewaz LIKE to znaczy szukaj we wszystkich kodach smile.gif

  1. <?php
  2. $zapytanie = "UPDATE kody SET kod = $nick WHERE kod=$kod";
  3. ?>


zamien na
  1. <?php
  2. $zapytanie=  "DELETE FROM kody WHERE 'kod'=$kod";
  3.                        $zapytanie = "INSERT INTO nicki (nick ) VALUES ('".$_POST['nickuzytkownika']."') ;";
  4. ?>
Miskov
Ehh... wywala mi blad w 10 linii... Co jest w niej zle?

  1. <?php
  2.                      $sql_conn = mysql_connect('localhost', 'user', 'password');
  3.                      mysql_select_db('baza');
  4.                  
  5.                    
  6. $kod=$_POST['kod'];
  7.  
  8. $wyni = "SELECT `kod` FROM `kody` WHERE `kod` LIKE $kod"  //szukanie kodu w bazie danych
  9.  
  10. if (mysql_num_rows($wyni)>0) {  
  11.  
  12. $zapytanie="DELETE FROM `kody` WHERE 'kod'=$kod";
  13. $zapytanie="INSERT INTO `gracze` (`nick`) VALUES ('".$_POST['nick']."');";
  14.  
  15.  
  16. }
  17. else echo "brak takiego kodu";
  18. ?>


Dodam, ze po wyswietleniu zmiennej $wyni funkcja else kod ze zmiennej $kod jest poprawny i istnieje w bazie
RafaelX
a gdzie łączenie??

  1. <?php
  2. $wyni = $sql_conn->query(SELECT `kod` FROM `kody` WHERE `kod` LIKE $kod");
  3.  
  4.    if ($wyni->num_rows==1) //mozna dac = bo kody nie bedą takie same nie ?
  5. ?>
Miskov
Moze mi ktos napisac jak ma wygladac dokladnie to laczenie? Szukam w google am kilka sposobow, ale zaden mi nie dziala...
memory
mysql_query brakuje ci
Miskov
To ze trzeba mysql_query wsadzic to wiem, tylko dalej nie chce przeciagnac... pozmienialem troche kod zebym wszystko po kolei mial ale i tak nie wiem czemu nie chce mi przyjac...
"Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource "

  1. <?php
  2.                     $sql_conn = mysql_connect('localhost', 'login', 'pass');
  3.                     mysql_select_db('baza');
  4.                
  5.                  
  6. $kod=$_POST['kod'];
  7.  
  8. $wyni = "SELECT `kod` FROM `kody` WHERE `kod` LIKE $kod ORDER BY DESC";  //szukanie kodu w bazie danych
  9. $laczenie = mysql_query($wyni);
  10. $razy = mysql_num_rows($laczenie);
  11.  
  12. if ($razy == 1);
  13.  
  14. $usun = "DELETE FROM `kody` WHERE `kod`=$kod";
  15. $usuwanie = mysql_query($usun);
  16. $dodaj = "INSERT INTO `gracze` (`nick`) VALUES ('".$_POST['nick']."');";
  17. $dodawanie = mysql_query($dodaj);
  18.  
  19. ?>


Dalej jest cos zle?
Chyba nie nadaje sie do pisania w php...

Pomoze ktos? Probowalem juz chyba wszystkiego...
phpion
Cytat
ORDER BY DESC

Musisz podać po jakiej kolumnie ma się odbywać sortowanie np. ORDER BY kolumna DESC
Miskov
np. ORDER BY `kod` DESC ?

Jezeli tak to nie pomoglo... caly czas wg. bledow jest problem z mysql_num_rows...
memory
Like '%$kod%' musza byc procenty
Miskov
Nastepny "pomogl" dla ciebie ;]

Tylko nastepny problem...

1.Kody sie nie usuwaja... (nicki sie dodaja)
2.Nie ma roznicy czy wpisze poprawny czy niepoprawny kod, skrypt i tak wykona zapytania... tak jakby funkcja if nie dzialala...
memory
  1. <?php
  2. if ($razy >0)
  3. {
  4.  
  5. $usun = "DELETE FROM `kody` WHERE `kod`='$kod'";
  6. $usuwanie = mysql_query($usun);
  7. $dodaj = "INSERT INTO `gracze` (`nick`) VALUES ('".$_POST['nick']."');";
  8. $dodawanie = mysql_query($dodaj);
  9.  
  10. }
  11. ?>


popatrz na kod bo robisz literowki i dlatego ci nie dziala
Miskov
Dziala! Super! Wielkie dzieki!
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.