Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][HTML][PHP]Formularz z zapytaniem
Forum PHP.pl > Forum > Przedszkole
Kalysto
Witam. Mam otóż taki problem:
Mam w formularzu edycji usera:
  1. Ranga: <select name="nazwa">
  2. <option id="1" name="admin">Administrator</option>
  3. <option id="2" name="mod">Moderator</option>
  4. <option id="3" name="user">User</option>
  5. </select><br>

właśnie ten kod (nawet nie wiem czy jest dobrze napisany). A chciałbym zrobić żeby po wybraniu odpowiedniej opcji tworzyło zapytanie
  1. $query = "UPDATE konta SET ...

i właśnie po SET żeby było że jeśli był wybrany admin to wysyła opcje 1 do kolumny admin, jeśli mod to 1 do kolumny mod, a jeśli user to 0 do tych dwóch poprzednich.

Problem tkwi otóż w tym że nie wiem jak to wszystko skleić do kupy żeby działało. Proszę o pomoc.
pablo_83
najpierw musi pobrać dane z formularza:

  1. $admin = $_POST['admin'];
  2. // analogicznie do pozostałych


a tutaj masz jak napisać zapytani update UPDATE
tylko zamiast wartości podstawiasz zmienne.

ew możesz zrobić tak:
  1. if($_POST['admin'] == true){
  2. $rola = $_POST['admin'];
  3. }else if($_POST['mod'] == true){
  4. $rola = $_POST['mod'];
  5. }else if($_POST['user'] == true){
  6. $rola = $_POST['user'];
  7. }

i wtedy do zapytania wstawiasz tylkol $rola przy odpowiedniej kolumnie
kadlub
Cytat(pablo_83 @ 27.05.2011, 09:53:11 ) *
  1. if($_POST['admin'] == true){
  2. $rola = $_POST['admin'];
  3. }else if($_POST['mod'] == true){
  4. $rola = $_POST['mod'];
  5. }else if($_POST['user'] == true){
  6. $rola = $_POST['user'];
  7. }


ciekawe jak to ma działać jak select ma name nazwa
chyba musi $_POST['nazwa'] porównywać do wartości 1,2,3 jakie ma w value option
Kalysto
Czyli działałby skrypt:

  1. if($admin) {
  2. $query = "UPDATE konta SET admin = '1' ";
  3. } else if($mod) {
  4. $query = "UPDATE konta SET mod = '1' ";
  5. } else if($user) {
  6. $query = "UPDATE konta SET admin = '0', mod = '0' ";
  7. }


że po wybraniu którejś tam rangi wysyła właśnie takie zapytanie?
nospor
zacznijmy od tego, że masz bez sensu tabelę. Powinno być jedno pole o możliwych wartościach: 1,2,3 i po sprawie.

Co do tego co już masz to wartość masz w $_POST['nazwa']
kadlub
zacznijmy od tego gdzie masz wartości value w option
Kalysto
Cytat(nospor @ 27.05.2011, 10:00:11 ) *
zacznijmy od tego, że masz bez sensu tabelę. Powinno być jedno pole o możliwych wartościach: 1,2,3 i po sprawie.

Co do tego co już masz to wartość masz w $_POST['nazwa']



No to dlatego pisze na tym forum żebyście mi Panowie, pomogli i pokazali jak to napisać żebym na następny raz mógł sam to zrobić bez pomocy. Chyba od tego jest to forum? Żeby pomagać ludziom?


Cytat(kadlub @ 27.05.2011, 10:01:03 ) *
zacznijmy od tego gdzie masz wartości value w option


w value powinny być wartości typu admin, mod? czy 1,2,3 ?
nospor
To ci przecież napisałem lepsze rozwiązanie oraz napisałem podpowiedź na temat tego co aktualnie masz. No 100% pracy za Ciebie nie wykonam - od tego akurat forum nie jest

Cytat
w value powinny być wartości typu admin, mod? czy 1,2,3 ?
Jak ci wygodniej
kadlub
  1. Ranga: <select name="nazwa">
  2. <option value="1" >Administrator</option>
  3. <option value="2" >Moderator</option>
  4. <option value="3" >User</option>
  5. </select><br>
  6.  


  1. if(isset($_POST['nazwa'])){
  2. if($_POST['nazwa']==1) {
  3. $query = "UPDATE konta SET admin = '1' ";
  4. } else if($_POST['nazwa']==2) {
  5. $query = "UPDATE konta SET mod = '1' ";
  6. } else if($_POST['nazwa']==3) {
  7. $query = "UPDATE konta SET admin = '0', mod = '0' ";
  8. }
  9. }
pablo_83
fakt, sorry za wprowadzenie w błąd, źle popatrzyłem mój błąd
Kalysto
Cytat(nospor @ 27.05.2011, 10:06:04 ) *
To ci przecież napisałem lepsze rozwiązanie oraz napisałem podpowiedź na temat tego co aktualnie masz. No 100% pracy za Ciebie nie wykonam - od tego akurat forum nie jest

Jak ci wygodniej



Tylko że przebudowa tabeli w MYSQL wiąże się z przebudową połowy strony, a na to aż tyle czasu niestety nie mam (strona na zaliczenie). Dlatego szukam rozwiązania do tego co mam obecnie.
nospor
No ale tego nie napisałeś a ja ci chciałem pomóc podając jak to prawidłowo być powinno a ty na mnie ni stąd ni zowąd skaczesz ze forum jest od pomagania. A ja niby co próbowałem zrobić? Pokroić cię na kawałeczki?
Kalysto
Cytat(nospor @ 27.05.2011, 10:09:59 ) *
No ale tego nie napisałeś a ja ci chciałem pomóc podając jak to prawidłowo być powinno a ty na mnie ni stąd ni zowąd skaczesz ze forum jest od pomagania. A ja niby co próbowałem zrobić? Pokroić cię na kawałeczki?


Wybacz. Źle widocznie mnie zrozumiałeś. Po prostu mam problem, który od kilku godzin męczę, więc napisałem tutaj. Bez zamiaru obrażania kogoś czy coś. Ale zrozum przebudowa pół strony, gdy czasu niewiele to też nie jest dobre rozwiązanie.


Cytat(kadlub @ 27.05.2011, 10:07:39 ) *
  1. Ranga: <select name="nazwa">
  2. <option value="1" >Administrator</option>
  3. <option value="2" >Moderator</option>
  4. <option value="3" >User</option>
  5. </select><br>
  6.  


  1. if(isset($_POST['nazwa'])){
  2. if($_POST['nazwa']==1) {
  3. $query = "UPDATE konta SET admin = '1' ";
  4. } else if($_POST['nazwa']==2) {
  5. $query = "UPDATE konta SET mod = '1' ";
  6. } else if($_POST['nazwa']==3) {
  7. $query = "UPDATE konta SET admin = '0', mod = '0' ";
  8. }
  9. }



Dziękuję. Właśnie o to mi chodziło:)
nospor
Cytat
Ale zrozum przebudowa pół strony, gdy czasu niewiele to też nie jest dobre rozwiązanie.
Ależ ja to rozumiem. Napisałeś mi to wyjaśnienie i ja je przyjmuję. Przecież o to się nie czepiam. smile.gif
Kalysto
Cytat(nospor @ 27.05.2011, 10:15:04 ) *
Ależ ja to rozumiem. Napisałeś mi to wyjaśnienie i ja je przyjmuję. Przecież o to się nie czepiam. smile.gif


Dziękuję smile.gif A możesz mi powiedzieć jak utworzyć zapytanie do tabeli news gdzie jest kolumna data (Datetime) YYYY-MM-DD H:M:S żeby właśnie wysyłało datę i godzinę jak należy?
nospor
  1. UPDATE news SET kolumna='2011-05-25 10:21:00'
Kalysto
Cytat(nospor @ 27.05.2011, 10:21:36 ) *
  1. UPDATE news SET kolumna='2011-05-25 10:21:00'


No tak ale tą godzinę musi pobrać skądś? A to chyba na zasadzie przypisania godziny to stałych ?
nospor
zarówno godzinę jak i datę zwraca funkcja date()
http://pl.php.net/manual/en/function.date.php
Kalysto
Cytat(nospor @ 27.05.2011, 10:29:39 ) *
zarówno godzinę jak i datę zwraca funkcja date()
http://pl.php.net/manual/en/function.date.php


Tak wiem. I właśnie korzystam z czegoś takiego:
  1. date_default_timezone_set('Europe/Warsaw');
  2. echo date('d-M-Y, H:m:s, e.');


choć przyznaję że nie za dobrze działa bo nie wyświetla właściwej godziny. I nie wiem właśnie jak to zbytnio przypisać?
Jedynie przyszło mi do głowy

  1. $y = date('Y');
  2. $m = date('M');
  3. $d = date('d');
  4.  
  5. $H = date('H');
  6. $M = date('m');
  7. $S = date('s');

Nie wiem czy to ma sens, w dodatku pewnie trzeba jeszcze jakąś stałą do "-" i ":" dać chyba sad.gif
nospor
  1. $zm = date('Y-m-d H:i:s');
  2. $sql = "UPDATE news SET kolumna='$zm'";
Kalysto
Cytat(nospor @ 27.05.2011, 10:35:48 ) *
  1. $zm = date('Y-m-d H:i:s');
  2. $sql = "UPDATE news SET kolumna='$zm'";



Dzięki śliczne:) Teraz sobie tylko to dodam i będzie jak należy smile.gif
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.