Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] INSERT INTO
Wojtekss
post 3.01.2009, 16:43:55
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 30.12.2008

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


Witam, mam problem z komenda.
mam takie tabele
Osoba
--------
ID_OSOBA <PK>
imie
nazwisko
telefon
email

Uczen
----------
ID_UCZNIA <PK>
ID_OSOBA
ID_KLASY


Klasa
----------
ID_KLASY <PK>
nazwa


Stworzylem formularz do wpisania imienia nazwiska telefonu email i klasa.
Wszystko ok tylko nie potrafie zrobic by po wpisaniu formularzu w polu "klasa" np. 1c wyszukalo mi po nazwie "1c" jego ID w tabeli "Klasa" i wpisalo go do tabeli "Uczen" w ID_KLASY.

np.
Klasa
--------
ID_klasy..........nazwa
1.....................1c

Uczen
---------
ID_UCZNIA..........15
ID_OSOBA...........26
ID_KLASA............1


mam takie cos ale nie wychodzi:

$dodaj = mysql_query ("INSERT INTO Osoba SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', email='$email'");
$dodaj1 = mysql_insert_id();

$dodaj2 = mysql_query ("INSERT INTO Uczen SET ID_OSOBA='$dodaj1' WHERE ID_KLASY='$klasa'");
$dodaj3 = mysql_insert_id();

Ten post edytował Wojtekss 3.01.2009, 16:53:53
Go to the top of the page
+Quote Post
bim2
post 3.01.2009, 16:44:55
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

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


Ale jaki problem? Jakie błędy? Co się dzieje? smile.gif


--------------------
Go to the top of the page
+Quote Post
Wojtekss
post 3.01.2009, 18:45:42
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 30.12.2008

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


Przepraszam przez przypadek wyslalem niegotowy post, jzu go edytowalem winksmiley.jpg

i jest ktos kto moze mi pomoc? zalezy mi bardzo

Doszedlem do takiej postaci, nie wiem czy poprawnie mysle, lecz jak wchodze w tabele Uczen to w ID_KLASY wypisuje mi wartosc 0.


$dodaj2 = mysql_query ("INSERT INTO Osoba SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', email='$email'");
$dodaj3 = mysql_insert_id();

$dodaj9 = mysql_query ("Select ID_KLASY from Klasa WHERE nazwa='$klasa'");
$dodaj4 = mysql_query ("INSERT INTO Uczen SET ID_OSOBA='$dodaj3', ID_KLASY='$dodaj9'");
$dodaj5 = mysql_insert_id();
Go to the top of the page
+Quote Post
nospor
post 3.01.2009, 18:53:21
Post #4





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Cytat
, lecz jak wchodze w tabele Uczen to w ID_KLASY wypisuje mi wartosc 0.

No bo ID_KLASY pobierasz tak:
$dodaj9 = mysql_query ("Select ID_KLASY from Klasa WHERE nazwa='$klasa'");


zobacz w manualu co zwraca mysql_query() a dowiesz sie, ze to nie bedzie ID_KLASY smile.gif
Jak juz to zaczaisz przyjrzyj się funkcji mysql_fetch_array()


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
SzamanGN
post 3.01.2009, 19:06:14
Post #5





Grupa: Zarejestrowani
Postów: 94
Pomógł: 14
Dołączył: 11.10.2007

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


Tabela Uczeń nie jest potrzebna.
Do tabeli Osoba dodaj pole klasa_ucznia.

Twój formularz (dodaj.php) powinien zawierać pola:
  1. <?php
  2. //Połączenie z bazą danych.
  3.  
  4. if (isset($_POST['imie']))
  5. {
  6. //Dodanie nowego ucznia.
  7. $dodaj = mysql_query ('INSERT INTO Osoba SET imie="'.$_POST["imie"].'", nazwisko="'.$_POST["nazwisko"].'", telefon="'.$_POST["telefon"].'", email="'.$_POST["email"].'", klasa="'.$_POST["klasa_ucznia"].'"');
  8. }
  9. ?>
  10. <form action="zapisz.php" method="post">
  11. Imię: <input> type="TEXT" name="imie">
  12. Nazwisko: <input> type="TEXT" name="nazwisko">
  13. Telefon: <input> type="TEXT" name="telefon">
  14. E-mail: <input> type="TEXT" name="email">
  15. Klasa:  <select name="klasa_ucznia">
  16. <?php
  17.    $pokaz = mysql_query('SELECT * FROM `Klasa`');
  18. while ($dane=mysql_fetch_array($pokaz))
  19. {
  20. echo '<option value='.$dane["ID_KLASY"].'>'.$dane["nazwa"].'</option>';
  21. }
  22. ?>
  23. </SELECT>
  24. <input type="SUBMIT"value="DODAJ">
  25. </form>


Ten post edytował SzamanGN 3.01.2009, 19:35:50


--------------------
SzamanGN
Go to the top of the page
+Quote Post
-Tagon-
post 23.09.2011, 17:23:47
Post #6





Goście







Cytat
$dodaj = mysql_query ('INSERT INTO Osoba SET imie="'.$_POST["imie"].'", nazwisko="'.$_POST["nazwisko"].'", telefon="'.$_POST["telefon"].'", email="'.$_POST["email"].'", klasa="'.$_POST["klasa_ucznia"].'"');



questionmark.gif Co to jest za składnia ? INSERT INTO ma inna budowę..

Zapytanie powinno wyglądać tak:

  1. mysql_query("INSERT INTO Osoba ('imie', 'nazwisko', 'telefon', 'email', 'klasa') VALUES ($_POST[imie], $_POST[nazwisko], $_POST[telefon], $_POST[email], $_POST[klasa], ");
Go to the top of the page
+Quote Post
agataperz
post 23.09.2011, 19:11:49
Post #7





Grupa: Zarejestrowani
Postów: 182
Pomógł: 0
Dołączył: 24.03.2009
Skąd: Hamburg DE

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


Po 1.
ażeby Ci ładnie wpisywało do bazy to musisz ustawić w każdej tablicy id na AUTO_INCREMENT
i teraz nie będzie Ci za każdym razem pokazywało 0 tylko kolejna cyfra wpisanego rekordu
Po 2.
ja bym trochę skruciła zapis wpisujący do bazy danych:
  1. 1.mysql_query("INSERT INTO Osoba VALUES ( '' ,'$_POST[imie]',' $_POST[nazwisko]',' $_POST[telefon]',' $_POST[email]','$_POST[klasa]'");

po co zapychac plik takimi instrukcjami plik
i przede wszystkim na końcu bez przecinka.
po 3.
posłuchaj @nospor'a on dobrze Ci tłumaczy lepiej id wyciągnij następnym zapytaniem np.:
  1. $query = "select ID_KLASY from Klasa WHERE nazwa='$klasa'";
  2. if(!$result = mysql_query($query, $db_lnk)){
  3. echo('Wystapil blad: id klasa<BR>');
  4. }
  5. while($rowe = mysql_fetch_row($result)){
  6. $id = $rowe[0];
  7. }


Ten post edytował agataperz 23.09.2011, 19:23:03
Go to the top of the page
+Quote Post
mikiz65
post 23.09.2011, 22:19:08
Post #8





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 7.09.2011

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


$dodaj2 = mysql_query ("INSERT INTO Osoba SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', email='$email'");
$dodaj3 = mysql_insert_id();

$pytanie = "Select ID_KLASY from Klasa WHERE nazwa='$klasa'";
$result = mysql_query ($pytanie) or die(mysql_error());
$dodaj9 = mysql_insert_id();
$dodaj4 = mysql_query ("INSERT INTO Uczen SET ID_OSOBA='$dodaj3', ID_KLASY='$dodaj9'");
$dodaj5 = mysql_insert_id();


$dodaj9 miałeś resulta query, a nie ID_KLASY.
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 30.04.2025 - 04:08