Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Pobieranie Id użytkownika
dakorta
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 10.03.2012

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


Mam tabele uzytkownicy, programy oraz test(zawiera użytkowników z przypisanymi im programami).
Pobieram id_użytkownika ale nie wiem jak to pobrane Id przypisać do formularza.
Program ma działac tak:
Wchodzę w użytkownika, klikam dodaj program i w następnym oknie chce mieć tylko liste programów i button dodaj. Wynikiem ma być dodanie programu do uzytkownika, w którym sie aktualnie znajduje.

Kod wygląda tak:
  1. <form method="post" action="index.php">
  2.  
  3. <input type="hidden" name="add_prog" value="true"/>
  4. <input type="hidden" name="id" value="<?=$row['id']?>" />
  5. <input type="text" name="id_programs" id="id_programs"/>
  6. <input type="submit" name="submit" value="Add Program"/>
  7. </form>


  1. function add_program ($p){
  2.  
  3. $id = mysql_real_escape_string($p['id']);
  4. $id_programs = mysql_real_escape_string($p['id_programs']);
  5.  
  6. $sql = "INSERT INTO test VALUES (null, '$id', '$id_programs')";
  7. $res = mysql_query($sql) or die(mysql_error());
  8. echo "Add Successfully!";
  9.  
  10. }


  1. function id_user($id) {
  2. $sql = "SELECT * FROM cms_content WHERE id = '$id'";
  3. $res = mysql_query($sql) or die(mysql_error());
  4. $row = mysql_fetch_assoc($res);
  5. ?>


Niestety nie pobiera mi zmiennej $id do formularza w związku z czym zapisuje mi do bazy tylko nazwę programu bez id_użytkownika. Co robię źle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
peter13135
post
Post #2





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


No to po Kolei.
  1. $id = mysql_real_escape_string($p['id']);

To jest bez sensu, bo teoretycznie zabezpieczy Cię przed SqlInjection, ale mija się z celem. Ta funkcja dodaje blackslashe przed apostrofy... a gdzie masz apostrofy w liczbie ?. Powinno się raczej rzutować na inta.
  1. $id_programs = mysql_real_escape_string($p['id_programs']);

Heh, to tak się teraz robi relacje? (IMG:style_emoticons/default/biggrin.gif)

Następna funkcja :
  1. "(...)WHERE id = '$id'";

$id to integerm więc nie powinno być apostrfów
Poza tym (to jest to jest właściwie Twój główny problem, o który pytałeś), funkcja nic nie robi, bo pobiera jakieś tam informacje do zmiennych, funkcja się "kończy" i informacje giną.
Zainteresuj się "zwracaniem wartości", słowo kluczowe : return.

Ten post edytował peter13135 10.03.2012, 12:29:57
Go to the top of the page
+Quote Post
dakorta
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 10.03.2012

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


Cytat
  1. $id_programs = mysql_real_escape_string($p['id_programs']);

Heh, to tak się teraz robi relacje? (IMG:style_emoticons/default/biggrin.gif)


Dopiero zaczynam nauke PHP.

Cytat
Następna funkcja :
  1. "(...)WHERE id = '$id'";

$id to integerm więc nie powinno być apostrfów

Racja, bez apostrofów też działa.
Cytat
funkcja nic nie robi, bo pobiera jakieś tam informacje do zmiennych, funkcja się "kończy" i informacje giną.
Zainteresuj się "zwracaniem wartości", słowo kluczowe : return.


Przyjrzę się dokładniej funkcjom. Poprawiłem kod i działa. Mam jeszcze jeden problem, ale spróbuje jeszcze sie sam pomęczyć (IMG:style_emoticons/default/wink.gif) .
Go to the top of the page
+Quote Post

Posty w temacie


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: 10.10.2025 - 21:52