Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] INSERT INTO
Forum PHP.pl > Forum > Przedszkole
Wojtekss
Mam takie polecenie do bazy:

INSERT INTO Oceny SET ID_UCZNIA='SELECT ID_UCZNIA FROM Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie=''Jan'' AND nazwisko=''Kowalski''', ID_PRZEDMIOTU='1', data='2008.05.05', ocena='5,5'

Dlaczego wpisuje mi do tabeli Oceny... ID_UCZNIA=0 ? zamiast prawidlowego ID?

Po wpisaniu do bazy tylko:
SELECT ID_UCZNIA FROM Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie='Jan' AND nazwisko='Kowalski'

wypisuje mi prawidlowe ID_UCZNIA
nospor
przeciez ty do ID wkladasz TEKST, ktory jest zapytaniem. A skoro wkladasz tekst to mysql konwertuje go na int i ma 0

Jak chcesz do inserta wlozyc cos z selecta to skorzystaj z tej skladni:
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
Wykrywacz
NIE
Cytat
INSERT INTO Oceny SET ID_UCZNIA='SELECT ID_UCZNIA FROM Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie=''Jan'' AND nazwisko=''Kowalski''', ID_PRZEDMIOTU= '1', data='2008.05.05', ocena='5,5'


A

  1. INSERT INTO Oceny SET ID_UCZNIA=(SELECT ID_UCZNIA FROM Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie='Jan' AND nazwisko='Kowalski'), ID_PRZEDMIOTU=1,
  2. DATA='2008.05.05',
  3. ocena='5,5'


To co próbowałeś zrobić to wsadzić NAPIS
'SELECT ID_UCZNIA FROM Osoba, Uczen WHERE Osoba.ID_OSOBA=Uczen.ID_OSOBA AND imie=''Jan'' AND nazwisko=''Kowalski'''

w do bazy danych gdzie pole jak wnioskuje z nazwy masz typu INT.
A to ponieważ dając w '' wsadzasz mu tekst.

A jeżeli chcesz wsadzić kolejne zapytanie to musisz je wrzucić w nawias, aby się wykonało i dopiero po jego wykonaniu wsadziło się w SET
Wojtekss
dzieki za pomoc;)
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.