Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze zmienną $_POST
Forum PHP.pl > Forum > Przedszkole
natomiast
Witam, Mam dwa formularze:
http://areksmolarek.republika.pl/naucz.php
Problem polega na tym, że po naciśnieciu przycisku zmień nie wykonuję sie zapytanie. Tzn wykonuje się ale tylko kiedy ustawie warunek WHERE "ręcznie" . Kiedy jest ustwione "UPDATE nauczyciel SET telefon='333-333' WHERE naucz_id='".$_POST['lista_naucz']."' " zapytanie milczy tak jakby zmienna w $_POST była pusta. THNX za pomoc smile.gif
Lejto
zobacz tak:

Kod
naucz_id='".$_POST[lista_naucz]."'


pokombinuj z cudzysłowami i sprawdź czy zmienna post $_POST[lista_naucz] zostanie wywołana przez echo
natomiast
Z cudzysłowami juz próbowałem i nic jueśli chodzi o echo to wyświetla się a i owszem ale przed warunkiem IF.
LonelyKnight
Cudzysłowy mają jakieś zastosowanie i chyba lepiej dowiedzieć się jak je stosować to nie trzeba będzie kombinować...

  1. <?php
  2. $strQuery = 'UPDATE `nauczyciel` SET `telefon`='333-333' WHERE `naucz_id` = ' . (int)$_POST['lista_naucz'];
  3. ?>
natomiast
Cytat(LonelyKnight @ 12.06.2008, 12:24:01 ) *
Cudzysłowy mają jakieś zastosowanie i chyba lepiej dowiedzieć się jak je stosować to nie trzeba będzie kombinować...

  1. <?php
  2. $strQuery = 'UPDATE `nauczyciel` SET `telefon`='333-333' WHERE `naucz_id` = ' . (int)$_POST['lista_naucz'];
  3. ?>


i tyle z tego wyszło:
Parse error: parse error, unexpected T_LNUMBER in C:\Program Files\WebServ\my_www\admin\modyfikacja_nauczyciela.php on line 79

sad.gif
mike
Cytat(natomiast @ 12.06.2008, 12:29:56 ) *
i tyle z tego wyszło:
Parse error: parse error, unexpected T_LNUMBER in C:\Program Files\WebServ\my_www\admin\modyfikacja_nauczyciela.php on line 79

sad.gif
No faktycznie mało ze szkoły wyniosłeś.
Mnie nauczyciele uczyli że nawet jak przepisujesz z tablicy to z głową a nie bezmyślnie.


Popraw sobie. Zamieszane jest z apostrofami.
natomiast
Mam to do zrobienia "na zeszły tydzień" tak wiec juz człowiek nie myśi wstydnis.gif
mike
Ech, coś forum źle bbCode formatuje.
  1. <?php
  2. $strQuery = "UPDATE `nauczyciel` SET `telefon`='333-333' WHERE `naucz_id` = " . (int)$_POST['lista_naucz'];
  3. ?>
natomiast
Hmm... to jednak nie to sad.gif
pyro
Cytat(LonelyKnight @ 12.06.2008, 12:24:01 ) *
Cudzysłowy mają jakieś zastosowanie i chyba lepiej dowiedzieć się jak je stosować to nie trzeba będzie kombinować...

  1. <?php
  2. $strQuery = 'UPDATE `nauczyciel` SET `telefon`='333-333' WHERE `naucz_id` = ' . (int)$_POST['lista_naucz'];
  3. ?>


LonelyKnight fajnie że to ma niby "zadziałać", radzę trochę poczytać o cudzysłowach... jak sam powiedziałeś, mają jakieś zastosowanie a sam tych zastosowań nie wykorzystujesz tiredsmiley.gif

poprawiony kod:

  1. <?php
  2. $strQuery = "UPDATE nauczyciel SET telefon='333-333' WHERE naucz_id = ".(int)$_POST['lista_naucz'];
  3. ?>
darecki
To zobacz czy ci zmienne POST są w ogóle przesyłane:

  1. <?php
  2. print '<pre>';
  3. print_r($_POST);
  4. print '</pre>';
  5. ?>


Może błąd polega na braku tej zmiennej wiec poszukaj błędu w formularzy (może brak zamknięci atrybutu name lub nazwy się duplikują)
natomiast
Dzieki Darecki
Sprawe załatwiłem dodając pole ukryte do drugiego formularza o value=$_POST['lista_naucz']
LonelyKnight
Cytat(pyro @ 12.06.2008, 12:58:05 ) *
LonelyKnight fajnie że to ma niby "zadziałać", radzę trochę poczytać o cudzysłowach... jak sam powiedziałeś, mają jakieś zastosowanie a sam tych zastosowań nie wykorzystujesz tiredsmiley.gif


Fakt ale to raczej przeoczenie a nie niewiedza.

Cytat(pyro @ 12.06.2008, 12:58:05 ) *
poprawiony kod:
  1. <?php
  2. $strQuery = "UPDATE nauczyciel SET telefon='333-333' WHERE naucz_id = ".(int)$_POST['lista_naucz'];
  3. ?>


Czemu wywaliłeś ``?

  1. <?php
  2. $strQuery = "UPDATE `nauczyciel` SET `telefon`='333-333' WHERE `naucz_id` = ".(int)$_POST['lista_naucz'];
  3. ?>
mike
Cytat(LonelyKnight @ 12.06.2008, 13:11:08 ) *
Czemu wywaliłeś ``?
Bo ich stosowanie nie zawsze jest uzasadnione. Nie zawsze są potrzebne.
Na przykład w tej sytuacji można swobodnie je pominąć.
pyro
Cytat(LonelyKnight @ 12.06.2008, 13:11:08 ) *
Fakt ale to raczej przeoczenie a nie niewiedza.


Bardziej chodziło mi o to, że mówisz o specjalnych właściwościach cudzysłowów a pod spodem dajesz przykład zaprzeczający temu...

Cytat(LonelyKnight @ 12.06.2008, 13:11:08 ) *
Czemu wywaliłeś ``?


nie sa potrzebne
darecki
Cytat(pyro @ 12.06.2008, 13:18:20 ) *
Bardziej chodziło mi o to, że mówisz o specjalnych właściwościach cudzysłowów a pod spodem dajesz przykład zaprzeczający temu...



nie sa potrzebne


hmm w tym przypadku się z tobą zgodzę ale ...

tak w celu wyjaśnienie do końca, standardowo nie są potrzebne jedna jeżeli pola maja nazwy specjalne (składowe zapytanie czy funkcji) np values wtedy zapytanie bez `` zwróci błąd, a w zapisie :

  1. UPDATE tabela SET `values` = '1' WHERE id = 1;


wykona się prawidłowo (specjalnie pominięte są w polu id i w nazwie tabeli)
leovandamon
Ja bym to zrobił tak:

Kod

<?php
  $strQuery = 'UPDATE nauczyciel SET telefon="333-333" WHERE naucz_id = "'.intval($_POST['lista_naucz']).'"';
  ?>
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.