UWAGA: Pojawiła się nowa wersja systemu - phpBB 3.3.19. Ostatnie wydania (od wersji 3.3.17 do najnowszej) przynoszą kluczowe poprawki, które chronią Twoje forum przed zagrożeniami i dbają o spokój Twojej społeczności. Polecam nie odkładać tego na później, tyllko zaktualizować fora!

Polski pakiet językowy dla phpBB 3.3.19

Mała przeróbka.

Pomoc przy instalacji oraz użytkowaniu phpBB 3.0.x. Forum nie służy do zgłaszania znalezionych błędów, innowacji lub problemów związanych ze stylami i modyfikacjami.
Crypt3r
Posty: 63
Rejestracja: 01 kwietnia 2009, 20:17

Mała przeróbka.

Post autor: Crypt3r » 06 października 2009, 14:50

Chciałbym się dostać przez plik mojplik.php do bazy danych wykorzystując zapytanie sql dla pola user_misup w tabeli phpbb_users, używa tego:

Kod: Zaznacz cały

 $sql = mysql_query("SELECT id,value FROM phpbb_users WHERE user_minusp='".$userdata['user_id']."' ORDER BY id DESC LIMIT 1"); 
Chciałbym ustawić wartość value czyli liczba user_minusp żeby było konfigurowalna przez ten plik. Co mam źle w tej linijce?

Wykorzystałem już chyba wszystkie możliwe pomysły. Proszę o Pomoc.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Mała przeróbka.

Post autor: jaroslw » 06 października 2009, 15:02

Może opisz to dokładniej (przedstaw jak wygląda struktura tej tabeli). Polecenie SELECT służy wyłącznie do pobierania (wyszukiwania) danych, a nie ich modyfikacji. Jeśli chcesz zaktualizować istniejące dane skorzystaj z polecenia UPDATE. Jeśli chcesz dodać nowe wiersze do tabeli, wykorzystaj polecenie INSERT.
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

Crypt3r
Posty: 63
Rejestracja: 01 kwietnia 2009, 20:17

Re: Mała przeróbka.

Post autor: Crypt3r » 06 października 2009, 15:41

To tak może po kolei. Mam pewną modyfikację która daje punkty dla użytkowników, coś na zasadzie Points_System w phpbb2.

Mam plik: mojplik.php i w nim sa rozne funkcje. Chciałbym tym plikiem zdejmować różne punkty i chodziło mi o to jak dać zapytanie sql ja powyżej jest żeby zdejmować to z tabeli głównej: phpbb_users dla pola user_minusp jak ustawię tak jak tutaj:

Kod: Zaznacz cały

$sql = mysql_query("SELECT id,value FROM phpbb_users WHERE user_minusp='".$userdata['user_id']."' ORDER BY id DESC LIMIT 1"); 
to mam napisane, że nie mam ostrzeżenia gdzie w mysql to ostrzeżenie jest.

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Mała przeróbka.

Post autor: jaroslw » 06 października 2009, 16:32

Jeśli dobrze rozumiem to chodzi Ci o coś takiego:

Kod: Zaznacz cały

$sql = mysql_query("UPDATE phpbb_users SET id = 'WARTOŚĆ', value = 'WARTOŚĆ' WHERE user_minusp = '{$userdata['user_id']}'"); 
PS. Zmień nazwę tematu na opisującą pokrótce problem!
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

Crypt3r
Posty: 63
Rejestracja: 01 kwietnia 2009, 20:17

Re: Mała przeróbka.

Post autor: Crypt3r » 06 października 2009, 16:43

No sprawdzę, czy to pracuje i dam znać jak coś, jak na razie to dzięki :)

Crypt3r
Posty: 63
Rejestracja: 01 kwietnia 2009, 20:17

Re: Mała przeróbka.

Post autor: Crypt3r » 07 października 2009, 17:03

No ok. Zrobiłem wszystklo tak jak należy ale jak wybieram opcję usunięcia ostrzeżenia to dalej to nie działa... Pokazuje się tylko informacja o tym: Nie posiadasz ostrzeżeń jak to ostrzeżenie mam. Dobra przyznam się, robię system płatności diamenty i tylko w tym jestem zawieszony, podam może całą cześć dla ostrzeżeń:

Kod: Zaznacz cały

$warn_points = $board_config['warndiamenty'];
if($userdata['session_logged_in'] && $_GET['wybierz_warn']) 
{
    $points_warn = $userdata['user_diamenty'] - $warn_points;
    $odejmijwarn = $sprawdz['value'] - 1;
    if($userdata['user_diamenty'] >= $warn_points)
    { 
    $sprawdz = mysql_query("SELECT id,value FROM phpbb_users WHERE user_minusp='".$userdata['user_id']."' ORDER BY id DESC LIMIT 1"); 
    if($sprawdz['value'] == '1')
    {
        $sql = mysql_query("INSERT INTO `phpbb_diamenty_przywileje` (`user_id`,`username`,`nazwa`,`data`,`diamenty`)
                            VALUES ('" . $userdata['user_id'] . "','" . $userdata['username'] . "','Zdjęcie Ostrzeżenia','" . $date . "','" . $warn_points . "')" );
        $sql = mysql_query("UPDATE phpbb_users SET user_diamenty='" . $points_warn . "'
                            WHERE user_minusp='" . $userdata['user_id'] . "'");
        $sql = mysql_query("DELETE SELECT id,user_minusp FROM phpbb_users WHERE user_minusp='".$sprawdz['id']."'"); 
                            message_die(GENERAL_MESSAGE, 'Ostrzeżenie zostało zdjęte<br /><br />Kliknij <a href="./diamenty.php"><b>Tutaj</b></a> aby powrócić do diamentów<br />'); 
    } 
    else if($sprawdz['value'] > '1')
    {
    $odejmijwarn = $sprawdz['value'] - 1;
    $sql = mysql_query("INSERT INTO `phpbb_diamenty_przywileje` (`user_id`,`username`,`nazwa`,`data`,`diamenty`)
                            VALUES ('" . $userdata['user_id'] . "','" . $userdata['username'] . "','Zdjęcie Ostrzeżenia','" . $date . "','" . $warn_points . "')" );
    $sql = mysql_query("UPDATE phpbb_users 
                            SET user_diamenty='" . $points_warn . "'
                            WHERE user_minusp='" . $userdata['user_id'] . "'");
    $sql = mysql_query("UPDATE SELECT id,value FROM phpbb_users SET value='$odejmijwarn' WHERE id='".$sprawdz['id']."'");
                            message_die(GENERAL_MESSAGE, 'Ostrzeżenie zostało zdjęte<br /><br />Kliknij <a href="./diamenty.php"><b>Tutaj</b></a> aby powrócić do diamentów<br />');
    }
    else
    { 
        message_die(GENERAL_MESSAGE, 'Nie posiadasz ostrzeżenia !<br /><br />Kliknij <a href="./diamenty.php"><b>Tutaj</b></a> aby powrócić do diamentów<br />'); 
    }
}
    message_die(GENERAL_MESSAGE, 'Błąd, posiadasz za mało diamentów !<br /><br />Kliknij <a href="./diamenty.php"><b>Tutaj</b></a> aby powrócić do diamentów<br />');
} 
we3b jak możesz to mi pomóż i powiedź gdzie jest błąd, dodatkowo mogę powiedzieć, że wprowadziłem system plusminus phpbb2 więc to user_minusp jest niezbędne. Jeszcze raz bardzo proszę o Pomoc....

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Mała przeróbka.

Post autor: jaroslw » 08 października 2009, 14:32

Pierwsza sprawa to źle skonstruowane zapytania SQL (przejrzyj jakiś kurs na temat ich podstawowej budowy, jest tylko kilka typów). Proponuję też zajrzeć do działu „Bazy danych” i zapoznać się z warstwą operacji na bazie danych w phpBB.
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

Crypt3r
Posty: 63
Rejestracja: 01 kwietnia 2009, 20:17

Re: Mała przeróbka.

Post autor: Crypt3r » 08 października 2009, 15:59

Myślałem, że dostanę pomoc tutaj na Forum a tym czasem dostaje odsyłacz, do nauki o bazach danych. Do niczego mnie nie prowadzi ten odsyłacz. A z drugiej strony skoro zrobiłem resztę na podobnej zasadzie to dlaczego akurat odpowiedź:
Pierwsza sprawa to źle skonstruowane zapytania SQL
. No więc może akurat dostanę jakąś odpowiedź czy raczej nie?

jaroslw
Zasłużony
Posty: 4524
Rejestracja: 10 grudnia 2005, 18:48
Kontakt:

Re: Mała przeróbka.

Post autor: jaroslw » 09 października 2009, 17:34

Mam przepisać za Ciebie cały kod? To do niczego nie prowadzi. Podałem już wcześniej wskazówki co jest źle. Polecenie SELECT nie jest jedynym wykorzystywanym. Składnia polecenia DELETE powinna wyglądać następująco:

Kod: Zaznacz cały

mysql_query("DELETE id, user_minusp FROM phpbb_users WHERE user_minusp = '$sprawdz['id']'"); 
W drugim zapytaniu UPDATE również niepotrzebnie występuje SELECT. Składniowo powinno wyglądać tak jak w moim drugim poście.

Wychodzę z założenia, że jeżeli sam to pisałeś, instrukcje warunkowe i operacje na zmiennych są dobrze ułożone i nie w nich leży problem (ten fragment kodu wiele mi nie mówi na temat funkcjonowania skryptu). Zasugerowałem przejrzenie kursu PHP/SQL, ponieważ w kodzie panuje bałagan. Może i to działa, aczkolwiek czasami nie jest potrzebne tyle apostrofów czy cudzysłowów. Przykład:

Kod: Zaznacz cały

$sql = mysql_query("INSERT INTO phpbb_diamenty_przywileje (user_id, username, nazwa, data, diamenty) VALUES ('$userdata['user_id']', '$userdata['username']', 'Zdjęcie Ostrzeżenia', '$date', '$warn_points')"); 
Pobierz styl: we_universal • we_clearblue
Nowości i aktualizacje: Facebook • Google+ • Twitter

Zablokowany

Wróć do „Użytkowanie”