Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [HTML][MySQL][PHP]formularz mysql php
daniel2k
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Hej, jak mogę zrobić takie coś, ze w bazie danych uzytkownicy jest uzystkownik Darek i posiada on w kolumnie ilość liczbę 4 i on tylko 4 razy może użyć formularza.
Skrypt sprawdzający przy wysyłce ile dany użytkownik ma już prób w kolumnie np. ilość: 3 to jak wysyła formularz to robi -1 i sprawdza też ile jest, jak będzie 0 to nie zapisuje i wywala informację.
Go to the top of the page
+Quote Post
Beniooo
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 26
Dołączył: 26.01.2012
Skąd: Ci to przyszło do głowy?

Ostrzeżenie: (0%)
-----


  1. $ilosc_prob = POBRANA Z BAZY ILOSC;
  2. if($ilosc_prob == 0){
  3. //wyświetl info, że nie może użyć formularza
  4. }else{
  5. //wyświetl formularz
  6. }

Z bazy pobierasz połączeniem PDO, albo mysqli za pomocą SELECT
Go to the top of the page
+Quote Post
daniel2k
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(Beniooo @ 14.02.2018, 10:44:11 ) *
  1. $ilosc_prob = POBRANA Z BAZY ILOSC;
  2. if($ilosc_prob == 0){
  3. //wyświetl info, że nie może użyć formularza
  4. }else{
  5. //wyświetl formularz
  6. }

Z bazy pobierasz połączeniem PDO, albo mysqli za pomocą SELECT

Bardzo Ci dziękuję za to, ostatnia rzecz... jak mogę zrobić tak żeby za każdym wysłaniem formularza odejmowało -1? :/
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




UPDATE tabela SET pole = pole -1 WHERE user=jakiesid czy inne id po czym indentyfikujesz uzytkownika
Go to the top of the page
+Quote Post
daniel2k
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 14.02.2018, 15:44:28 ) *
UPDATE tabela SET pole = pole -1 WHERE user=jakiesid czy inne id po czym indentyfikujesz uzytkownika


Nie wiem dlaczego kompletnie nic nie działa, wywala całą stronę... coś jest nie tak w tym kodzie?


  1. $polaczenie = mysql_connect('localhost', 'root', '123', 'qqq');
  2. $ilosc_prob = mysql_query("SELECT pozostale FROM uzytkownicy WHERE id='.$_SESSION['id']'");
  3. if($ilosc_prob == 0){
  4. echo "Nie możesz"
  5. }else{
  6. echo "możesz"
  7. }


Kazdy uzytkownik ma unikalne ID generowane przy rejestracji, dlatego użyłem .$_SESSION['id']
pozostale - kolumna odpowiedzialna za ilosc prob

Ten post edytował daniel2k 15.02.2018, 01:53:05
Go to the top of the page
+Quote Post
topcio
post
Post #6





Grupa: Zarejestrowani
Postów: 140
Pomógł: 0
Dołączył: 14.01.2017

Ostrzeżenie: (0%)
-----


Wpisz tak
  1. '{$_SESSION['id']}'
Go to the top of the page
+Quote Post
daniel2k
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(topcio @ 15.02.2018, 02:42:41 ) *
Wpisz tak
  1. '{$_SESSION['id']}'


Nadal wywala (IMG:style_emoticons/default/sad.gif) Oczywiscie całość daje w

<?php

kod

?>
Go to the top of the page
+Quote Post
viking
post
Post #8





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Id nie jest stringiem. Poza tym używasz rozszerzenia mysql które wylecialo z php7.
Go to the top of the page
+Quote Post
daniel2k
post
Post #9





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(viking @ 15.02.2018, 06:52:41 ) *
Id nie jest stringiem. Poza tym używasz rozszerzenia mysql które wylecialo z php7.

Czyli co muszę zrobić aby całość działała? Co zmienić.

  1. <?php
  2. $polaczenie = @new mysqli('localhost', 'root', '123', 'qqq');
  3. if (mysqli_connect_errno() != 0){
  4. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  5. }
  6. else {
  7. $ilosc_prob = @$polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  8. if($ilosc_prob == 0){
  9. echo "Nie możesz";
  10. }else{
  11. echo "możesz";
  12. }
  13. }
  14. ?>


Ten post edytował daniel2k 15.02.2018, 09:36:41
Go to the top of the page
+Quote Post
viking
post
Post #10





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Na początek usuń wszystkie @ z kodu
Go to the top of the page
+Quote Post
daniel2k
post
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(viking @ 15.02.2018, 09:46:29 ) *
Na początek usuń wszystkie @ z kodu

  1. <?php
  2. $polaczenie = new mysqli('localhost', 'root', '123', 'qqq');
  3. if (mysqli_connect_errno() != 0){
  4. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  5. }
  6. else {
  7. $ilosc_prob = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  8. if($ilosc_prob == 0){
  9. echo "Nie możesz";
  10. }else{
  11. echo "możesz";
  12. }
  13. }
  14. ?>


Zrobiłem to o co prosiłeś, naprawdę nie wiem gdzie leży błąd...

Ten post edytował daniel2k 15.02.2018, 09:51:25
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Czyli co, nadal ten nowy kod wywala ci strone? To moze chociaz napisz na czym polega to wywalanie...
Go to the top of the page
+Quote Post
daniel2k
post
Post #13





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 10:04:28 ) *
Czyli co, nadal ten nowy kod wywala ci strone? To moze chociaz napisz na czym polega to wywalanie...


Nie, nie, już nie wywala... działa wszystko jeśli chodzi o łączenie, teraz ostatnim problemem jest to, że nie ważne czy w polu kamien (w bazie) wpisze 1 czy 0, tak czy siak wyswietla sie pozwolenie - mozesz.
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Ciezko bylo od razu tak napisac?

Przeciez query teraz zwraca ci zawsze TRUE (czy tam resource) niewazne czy znalazlo rekord czy nie wiec nic dziwnego ze twoj IF ELSE zachowuje sie tak jak sie zachowuje... Doczytaj w manualu jak pobrac rekord a nie wynik wykonania zapytania
Go to the top of the page
+Quote Post
daniel2k
post
Post #15





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 10:11:21 ) *
Ciezko bylo od razu tak napisac?

Przeciez query teraz zwraca ci zawsze TRUE (czy tam resource) niewazne czy znalazlo rekord czy nie wiec nic dziwnego ze twoj IF ELSE zachowuje sie tak jak sie zachowuje... Doczytaj w manualu jak pobrac rekord a nie wynik wykonania zapytania


Gdzie tym razem jest błąd, przepraszam, że tak pytam o wszystko ale nadal pomimo mysql_result nie działa...

  1. <?php
  2. $polaczenie = new mysqli('localhost', 'root', '123', 'qqq');
  3. if (mysqli_connect_errno() != 0){
  4. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  5. }
  6. else {
  7. $ilosc_prob = mysql_result("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  8. if($ilosc_prob == 0){
  9. echo "Nie możesz";
  10. }else{
  11. echo "możesz";
  12. }
  13. }
  14. ?>


Ten post edytował daniel2k 15.02.2018, 10:30:15
Go to the top of the page
+Quote Post
nospor
post
Post #16





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




MIeszasz styl proceduralny z obiektowym... nie mieszaj. Trzymaj sie obiektowego To raz
A dwa: gdzie ja pisalem ze masz usuwac query() ? TO mialo zostac. Procz tego miales jeszcze odebrac dane
Go to the top of the page
+Quote Post
daniel2k
post
Post #17





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 10:32:06 ) *
MIeszasz styl proceduralny z obiektowym... nie mieszaj. Trzymaj sie obiektowego To raz
A dwa: gdzie ja pisalem ze masz usuwac query() ? TO mialo zostac. Procz tego miales jeszcze odebrac dane


Poddaje się, to nie jest na moją głowę, pomimo szukania, próbowania i tak nic nie wychodzi.
Nie potrafię znaleźć błędów które mi wskazujesz...

Zrobiłem jeszcze coś takiego... ale nadal w marnych skutkach

  1. <?php
  2.  
  3. if (mysqli_connect_errno() != 0){
  4. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  5. }
  6. else {
  7.  
  8. $query = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  9. $ilosc_prob = mysql_result($query,"{$_SESSION['user']}","id");
  10. if($ilosc_prob == 0){
  11. echo "$ilosc_prob";
  12. }
  13. else{
  14. echo "możesz";
  15. }
  16. }
  17. ?>


Ten post edytował daniel2k 15.02.2018, 11:00:34
Go to the top of the page
+Quote Post
nospor
post
Post #18





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




O to
$ilosc_prob = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
mialo zostac. To jest dobrze. TO wykonuje zapytanie. Teraz masz jeszcze odebrac rekord z tego zapytania:
http://php.net/manual/en/mysqli-result.fetch-assoc.php
Go to the top of the page
+Quote Post
daniel2k
post
Post #19





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 10:48:44 ) *
O to
$ilosc_prob = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
mialo zostac. To jest dobrze. TO wykonuje zapytanie. Teraz masz jeszcze odebrac rekord z tego zapytania:
http://php.net/manual/en/mysqli-result.fetch-assoc.php


  1. $polaczenie = new mysqli('localhost', 'root', '123', 'qqq');
  2. if (mysqli_connect_errno() != 0){
  3. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  4. }
  5. else {
  6.  
  7. $query = ("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  8. $result = mysqli_query($query);
  9. if($result == 0){
  10. echo "nie mozesz";
  11. }
  12. else{
  13. echo "możesz";
  14. }
  15. }


Ehh, czuje, ze jestem juz tak blisko...
Go to the top of the page
+Quote Post
viking
post
Post #20





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Ty w ogóle patrzysz na dokumentację? Masz tam pełne przykłady.
Go to the top of the page
+Quote Post
daniel2k
post
Post #21





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(viking @ 15.02.2018, 11:06:32 ) *
Ty w ogóle patrzysz na dokumentację? Masz tam pełne przykłady.


Patrzę... naprawdę się staram to wszystko pojąć...
Go to the top of the page
+Quote Post
nospor
post
Post #22





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Co tam dokumentacja jak on nie rozumie co mu pisze po polsku w temacie.

Wyraznie ci napisalem ze o to:
$ilosc_prob = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
ma zostac. A ty co? A ty radosnie to usunales poraz kolejny. Dalsze dyskusja nie ma sensu jak ty prostych polecen nie rozumiesz.
Go to the top of the page
+Quote Post
daniel2k
post
Post #23





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 11:18:03 ) *
Co tam dokumentacja jak on nie rozumie co mu pisze po polsku w temacie.

Wyraznie ci napisalem ze o to:
$ilosc_prob = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
ma zostac. A ty co? A ty radosnie to usunales poraz kolejny. Dalsze dyskusja nie ma sensu jak ty prostych polecen nie rozumiesz.


Przepraszam... Wiem, ze z waszego punktu widzenia wygląda to zapewne jakbym robił z siebie idiotę, lecz siedzę nad tym problemem już 3 dzień po kilka godzin, szukając rozwiązania...
  1. else {
  2.  
  3. $query = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  4. $result = mysqli_query($query);
  5. if($result = 0){
  6. echo "nie mozesz";
  7. }else{
  8. echo "mozesz";
  9. }
  10. }


Teraz zastosowałem polecenie query tak jak było to poprzednio wskazane, pobrałem wynik z tego zapytania za pomocą mysqli_query... Nadal kod posiada błąd którego oczywiście ja nie potrafię zobaczyć...
Go to the top of the page
+Quote Post
nospor
post
Post #24





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Kazde moje zadanie po kolei mam ci w kazdym kolejnym poscie wyjasniac? Bawi cie to?

Napisalem wyraznie, ze masz zostawic query i odpalic fetch. A ty co? Wywaliles co miales zostawic i cos tam kombinowales. Napisalem ci o tym to w koncu raczyles zostawic co prosilem bys zostawil ale fetch jak nie robiles tak nadal nie robisz. Przeciez wszystko masz napisane ode mnie, jakbym ci podal przepis na ciasto a ty sobie ogladasz TV i w miedzyczasie wrzucasz cos co uslyszales w TV.

Czego tu nie ruzumiesz:
1) zostaw query jak miales - podalem ci ktore
2) nastepnie zastosuj FETCH - podalem ci nawet linka o jaki fetch mi chodzi

Co w tych dwoch krokach jest niezrozumialesgo? Czemu uparcie od ilus tam postow nie uzywasz FETCH jak ci podalem? Ty nie masz problemow z programowaniem ale generalnie z paroma innymi rzeczami :/
Go to the top of the page
+Quote Post
daniel2k
post
Post #25





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(nospor @ 15.02.2018, 11:48:50 ) *
Kazde moje zadanie po kolei mam ci w kazdym kolejnym poscie wyjasniac? Bawi cie to?

Napisalem wyraznie, ze masz zostawic query i odpalic fetch. A ty co? Wywaliles co miales zostawic i cos tam kombinowales. Napisalem ci o tym to w koncu raczyles zostawic co prosilem bys zostawil ale fetch jak nie robiles tak nadal nie robisz. Przeciez wszystko masz napisane ode mnie, jakbym ci podal przepis na ciasto a ty sobie ogladasz TV i w miedzyczasie wrzucasz cos co uslyszales w TV.

Czego tu nie ruzumiesz:
1) zostaw query jak miales - podalem ci ktore
2) nastepnie zastosuj FETCH - podalem ci nawet linka o jaki fetch mi chodzi

Co w tych dwoch krokach jest niezrozumialesgo? Czemu uparcie od ilus tam postow nie uzywasz FETCH jak ci podalem? Ty nie masz problemow z programowaniem ale generalnie z paroma innymi rzeczami :/


  1. if (mysqli_connect_errno() != 0){
  2. echo '<p>Wystąpił błąd połączenia: ' . mysqli_connect_error() . '</p>';
  3. }
  4. else {
  5. $query = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  6. if ($result = $mysqli->query($query)) {
  7. while ($row = $result->fetch_assoc()) {
  8. if ($row = 0)
  9. echo "nie mozesz";
  10. }
  11. }
  12. else {
  13. echo "mozesz"
  14. }
  15. $result->free();
  16. $mysqli->close();


Po zostosowaniu fetch strona już kompletnie się nie ładuje... Przepraszam, że tyle sprawiam problemów, lecz naprawdę nie potrafię tego pojąć, a zależy mi strasznie... to ostatni skrypt który jest mi potrzebny...
Go to the top of the page
+Quote Post
Toshikatsu
post
Post #26





Grupa: Zarejestrowani
Postów: 26
Pomógł: 3
Dołączył: 18.10.2017

Ostrzeżenie: (0%)
-----


Po kiego dwa razy wywołujesz funkcję query?
Drugie wywołanie jest kompletnie bezsensowne, bo jako argument nie podajesz mu zapytania a coś kompletnie innego.
Spróbuj przeanalizować linijka po linijce co gdzie masz (np. var_dump) i co tam być powinno.

Wykonanie zapytania(query('Twoje zapytanie')) -> Odczytanie wyniku zapytanie(fetch_assoc()) -> sprawdzenie if'em

Ten post edytował Toshikatsu 15.02.2018, 12:36:43
Go to the top of the page
+Quote Post
daniel2k
post
Post #27





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Cytat(Toshikatsu @ 15.02.2018, 12:34:10 ) *
Po kiego dwa razy wywołujesz funkcję query?
Drugie wywołanie jest kompletnie bezsensowne, bo jako argument nie podajesz mu zapytania a coś kompletnie innego.
Spróbuj przeanalizować linijka po linijce co gdzie masz (np. var_dump) i co tam być powinno.

Wykonanie zapytania(query('Twoje zapytanie')) -> Odczytanie wyniku zapytanie(fetch_assoc()) -> sprawdzenie if'em

Ehh, usunąłem 2 wywołanie, kolejność jest zachowana... ponownie strona nawet się nie ładuje. Widać, że jestem zbyt głupi na to i będę musiał komuś za to zapłacić bo samemu nigdy nie dojdę do zamierzonego celu.

  1. else {
  2. $query = $polaczenie -> query("SELECT kamien FROM uzytkownicy WHERE user = '{$_SESSION['user']}'");
  3. while ($row = $query->fetch_assoc()) {
  4. if ($row = 0)
  5. echo "nie mozesz";
  6. }
  7. }


Ten post edytował daniel2k 15.02.2018, 12:48:29
Go to the top of the page
+Quote Post
viking
post
Post #28





Grupa: Zarejestrowani
Postów: 6 381
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Co według Ciebie robi konstrukcja $row = 0? A gdyby to nawet było == to dalej jest głupota. Zrób var_dump po każdym kroku.
Go to the top of the page
+Quote Post
daniel2k
post
Post #29





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 13.02.2018

Ostrzeżenie: (0%)
-----


Dziękuję wszystkim za pomoc, głównie za cierpliwość, udało się (IMG:style_emoticons/default/zakochany.gif)
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 13:43