Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytaniem php do bazy jako wybor opcji formularza, Nie moge dosc do tego gdzie mam blad
Dafidov
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.07.2005
Skąd: Śląsk Bytom

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


Witam Wszystkich.
Od wczoraj się grzebie szukam i szukam i jakoś znaleść nie mogę ani u siebie w kodzie ani na forum odpowiedzi jak rozwiązać mój problem.
Piszę baza w której mam stuudentów pracowników przedmioty itd coś ala elektroniczny indeks, tablica ogłoszeń.
Chce zrobic sobie ładnego selecta który będzie mi z jednej tabeli pobierał dane jako opcje do wyboru i ciągle wyrzuca mi ale pustą liste select otion.
Oto kod:
Kod
tytuł naukowy: <select name="tytul_naukowy">
<?php
$querry = "select skrot from tytul_naukowy where skrot like '%'";
$result = mysql_querry($querry);

while ($row = mysql_fetch_array($result))  {
$tytul = $row['tytul'];
?>
<option value="<?php echo"$tytul"; ?>"><? echo"imie"; ?></option>
<?php } ?>
</select>

Mam w bazie tabele tytul_naukowy z polami id skrot nazwa i chce zeby w liscie select mozna bylo wybrac jedne ze skrotwo typu:
mgr inż dr prof.
Nie wiem czy błąd jest w konstrukcji zapytania w php czy w samym mysql.

Proszę o pomoc i rade jak napisać takiego prawidłowego selecta, który będzie z bazy generował mi listę wyboru.


Drugi problem jest nieco bardziej skomplikowany i też jest bardziej z Mysql niż z php ale też nie wiem jak napisać parwidłowo formułe w php żeby moć wpisując tego naszego pracownika, któremu chcę dodawać tytuł naukowy, dodać pole adres które jest kluczem obcym odwolujadej sie do tabeli adres.
Tabela pracownika ma takie pola:
id, id_grupa, imie, nazwisko, username, haslo, id_adres.
Klucz glowny to id.
Klucze obce to id_grupa i id_adres.
Tabela adres ma takie parametry:
id id_user ulica nr domu miejscowosc itd
Jak napisac formularz zeby dodawac pracownika w taki sposb zeby mozna bylo od razu wpisac jego adres? Czy da sie to zrobic i jesli tak to prosze o podopwoiedz.
Z gory dziekuje.
Mam nadzieje iz moj opis jest dosc scisly...
Pracuje na Mysql 5 i php 5
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dafidov
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 6.07.2005
Skąd: Śląsk Bytom

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


Baza ktora tworze posiada tabele adres, do ktorej 3 grupy uzytkownikow bede mialy dostep. Tzn. w tabeli student mam klucz obcy id_adres odwolujacy sie do tabeli adres, w tabeli pracownik tez mam taki sam klucz obcy oraz w tabeli wydzial.

Musze to tak zrobic no chyba ze moja koncepcja jest beledna ale wydaje mi sie iz po to tworzy sie baze aby nie bylo powielania danych w roznych miejscach czyli jesli wielu uzytkownikow ma kilka wspolnych pol tonajlepiej je wyizolowac i dac do jednej tabeli i tak tez zrobilem u mnie.

Na pewno bedzie tam sporo wpisow gdyz bedzie ona miala wielu studentow troche mniej pracwonkiow i jeszcze mniej wydzialow powiedzmy 6.

Raczej dane nie beda sie powielaly tylko za kazdym razem bede dodawala nowego studenta i pracownika.

Adres
  1. CREATE TABLE adres(
  2. id mediumint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. id_user mediumint(10) UNSIGNED NOT NULL,
  4. ulica varchar(60) NOT NULL DEFAULT 'ul. ',
  5. nr_domu varchar(10) NOT NULL,
  6. nr_mieszkania varchar(10),
  7. kod_pocztowy varchar(10) NOT NULL,
  8. miejscowosc varchar(50),
  9. id_woj int(11) NOT NULL,
  10. telefon_stac mediumint(16) UNSIGNED DEFAULT '0',
  11. telefon_kom mediumint(16) UNSIGNED DEFAULT '0',
  12. fax mediumint(16) UNSIGNED DEFAULT '0',
  13. email varchar(30) NOT NULL,
  14. PRIMARY KEY (id),
  15. INDEX (id_student),
  16. FOREIGN KEY (id_student) REFERENCES student(id) ON UPDATE cascade ON DELETE restrict,
  17. INDEX (id_woj),
  18. FOREIGN KEY (id_woj) REFERENCES wojewodztwa(id) ON UPDATE cascade ON DELETE restrict)
  19. type=innodb;


Pracownik
  1. CREATE TABLE pracownik(
  2. id mediumint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. id_wydzial mediumint(10) UNSIGNED NOT NULL,
  4. id_tytul mediumint(10) UNSIGNED NOT NULL,
  5. imie varchar(20) NOT NULL,
  6. nazwisko varchar(40) NOT NULL,
  7. username varchar(20) NOT NULL,
  8. haslo varchar(20) NOT NULL,
  9. rejestracja datetime,
  10. STATUS tinyint(4) NOT NULL DEFAULT 2,
  11. id_adres tinyint(2) UNSIGNED NOT NULL,
  12. id_przedmiot mediumint(10) UNSIGNED NOT NULL,
  13. id_grupa mediumint(10) UNSIGNED NOT NULL,
  14. PRIMARY KEY (id),
  15. INDEX (id_przedmiot),
  16. FOREIGN KEY (id_przedmiot) REFERENCES lista_przedmiotow(id) ON UPDATE cascade ON DELETE restrict,
  17. INDEX (id_wydzial),
  18. FOREIGN KEY (id_wydzial) REFERENCES wydzial(id) ON UPDATE cascade ON DELETE restrict,
  19. INDEX (id_tytul),
  20. FOREIGN KEY (id_tytul) REFERENCES tytul_naukowy(id) ON UPDATE cascade ON DELETE restrict,
  21. INDEX (id_grupa),
  22. FOREIGN KEY (id_grupa) REFERENCES grupa(id) ON UPDATE cascade ON DELETE restrict),
  23. INDEX (id_adres),
  24. foreigen KEY (id_adres) REFERENCES adres(id) ON UPDATE cascade ON DELETE restrict)
  25. type=innodb;


Wydzial
  1. CREATE TABLE wydzial(
  2. id mediumint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. skrot varchar(10) NOT NULL,
  4. nazwa varchar(60) NOT NULL,
  5. id_adres mediumint(10) UNSIGNED NOT NULL,
  6. PRIMARY KEY (id),
  7. INDEX (id_adres),
  8. FOREIGN KEY (id_adres) REFERENCES adres(id) ON UPDATE cascade ON DELETE restrict)
  9. type=innodb;


To przykladowe trzy tabele, ne bede wrzucal studenta bo zabardzo by to jeszcze moglo tylko na mieszac a tak moze bedzie troszke bardziej zrozumiale.

Wszystkie dane podaje w formularzu zeby dodac usera konkretnego i jak juz wspomnialem we wczesniejszm poscie zwrac blad gdu chce dodac pracwonika ktory nie ma jeszcze dodanego adres, stad moje pytanie - jak to zrobic? tzn jednorazowo do tego samego formularza od razu dolaczyc dane adrsowe?

Jesli tak to jak powiazac (stworzyc i napisac w php) kod ktory wstawi to samo id_pracownika w tabeli adres a za razem to samo id_adres w tabeli pracownicy tak zeby te dane byly ze soba powiazane.

Mam nadzieje ze teraz sprawa jest nieco jasniejsza (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Dafidov 26.03.2006, 18:18:29
Go to the top of the page
+Quote Post

Posty w temacie
- Dafidov   Zapytaniem php do bazy jako wybor opcji formularza   25.03.2006, 18:36:36
- - nospor   mysql_querry - nie ma takiej funkcji jest: mysql...   25.03.2006, 18:54:36
- - Dafidov   Lepszp rydz niż nic jak to mówią. Query działa - d...   25.03.2006, 22:23:31
- - kanan   Jesli adres jest kluczem obcym, to by bylo mozliwe...   26.03.2006, 15:09:09
- - Dafidov   Czyli jak to zrobic? Najpierw musze utworzyc w for...   26.03.2006, 15:22:56
- - kanan   Nie rozumiem jednego, w jakim aspekcie uzywasz adr...   26.03.2006, 16:32:59
- - Dafidov   Baza ktora tworze posiada tabele adres, do ktorej ...   26.03.2006, 17:01:24
- - nospor   W formularzu podajesz wszystkie dane: adres i prac...   26.03.2006, 17:10:31
- - Dafidov   Zaczytałem się w manualu php No to jest pewna nie...   26.03.2006, 18:12:59
- - nospor   LAST_INSERT_ID zwraca ci ostatnio dodane id do baz...   26.03.2006, 18:58:30
- - Dafidov   Troche mi to czasu zajelo ale niestety wywala mi b...   26.03.2006, 21:10:23
- - nospor   nasze niedopatrzenie. nie : LAST_INSERT_ID a: LAS...   26.03.2006, 21:14:04
- - Dafidov   Chyba się sam juz URATOWAŁEM Przyspałem że ma być...   26.03.2006, 21:19:14
- - nospor   ja bym ci proponowal stworzyc tablicę mapującą. mo...   26.03.2006, 21:25:36
- - Dafidov   Myśle że przenosin to już wystarczy jak na jeden t...   26.03.2006, 21:41:09
- - nospor   CytatMyśle że przenosin to już wystarczy jak na je...   26.03.2006, 21:50:03
- - Dafidov   No to trzeba bedzie poszperac troche No ale jak j...   26.03.2006, 23:25:36
- - nospor   To się nazywa tranzakcje: http://dev.mysql.com/doc...   27.03.2006, 08:35:44
- - Dafidov   Poczytałem troszkę w manualu i niestety nasuwa mi ...   27.03.2006, 21:08:18
- - nospor   begin, commit i rollback to zwykle zapytania mysql...   27.03.2006, 22:11:04
- - Dafidov   Dziekuje za pomoc. Z tym klopotem juz sobie poradz...   29.03.2006, 08:52:27


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

 



RSS Aktualny czas: 12.10.2025 - 03:34