Witam, mam dwie tabele w bazie danych w jednej jest pole z nazwami krajów i ich identyfikatory.
W formularzu mam liste rozwijaną, z danymi pobranymi z bazy danych.
Problem polega na tym, że nie wiem jak dodawać do drugiej tabeli w bazie danych wartosci wybranej w liście wyboru.
Mój formularz wygląda tak:
<?php
function formularz ($wyswietl=1)
{
<form action="wstaw_nowego.php" method="POST" enctype="multipart/form-data" name="f1">
<fieldset><legend>Wprowadź do poniższego formularz swoje dane:</legend>
<table border="0">
<TR><TD>Imię</TD><TD><input type="text" name="imie" maxlength="255" size="30"></TD></TR>
<TR><TD>Nazwisko</TD><TD><input type="text" name="nazwisko" maxlength="255" size="30"></TD></TR>
<TR><TD>Kraj</TD><TD><select name="id_kraj value="id_kraj">';
$connection = @mysql_connect('localhost', 'root', 'tolkien')or
die('brak polaczenia z BD');
/* zapytanie do konkretnej tabeli */
$wynik = mysql_query("SELECT * FROM kraj order by kraj") or
die('Błąd zapytania');
{
echo '<option value="0">--------</option>'; /* najpierw inicjujemy początek znaczników <form>, bo inaczej będą się w pentli wywyoływały, to samo z <select> */
/* Ja używam mysql_fetch_array() - zwraca wiersze spełniające zapytanie*/
{
$id_kraj = $row["id_kraj"];
$kraj = $row["kraj"];
/* tutaj same elementy wyświetlane w polu select, czyli..*/
/* "pole" to oczywiście nazwa kolumny do jakiej chcesz się odwołać*/
echo '<option value="'.$id_kraj.'">'.$kraj.'</option>'; }
/*na końcu zamykamy tagi*/
}
echo '<TR><TD>Miasto</TD><TD><input type="text" name="miasto" maxlength="255" size="30"></TD></TR> <input type="hidden" name="id_kraj" value="<?php echo $wartosc_id ?>" />
<TR><TD>Email</TD><TD><input type="text" name="email" maxlength="255" size="30"></TD></TR>
<TR><TD>Zdjęcie</TD><TD><input type="hidden" name="MAX_FILES_SIZE" value="8388608" />
<input type="file" name="zalacznik"/>
<input type="submit" value="Wyślij plik"/></TD></TR>';
//Kolejny test, w celu upewnienia sie, że żeczywiście przesłano plik
if (!($_FILES['zalacznik']['size'])) {
echo "<p><font color=\"red\">Błąd: Nie przesłano plików</font><p>\n"; } else {
//Określenie docelowej nazwy, pod którą chcemy zapisać plik
//Próba przeniesienia przesłanego pliku do nowej lokalizacji.
echo "<p><font color=\"red\">Błąd!!! Wystąpił błąd podczas przesyłania pliku o nazwie: {$newname}</font><p>\n"; } else {
//Udało sie!
echo "<p><font color=\"green\">Zrobione! Plik zapisano pod nazwa: {$newname}</font><p>\n"; }
}
}
echo '<TR><TD>Instytut</TD><TD><input type="text" name="instytut" maxlength="255" size="30"></TD></TR> <TR><TD>Adres uczelni</TD><TD><input type="text" name="adres" maxlength="255" size="30"></TD></TR>
<TR><TD>Opis</TD><TD><textarea rows="20" cols="100" name"opis"></textarea></TD></TR>
</table></fieldset>
<div><input type="submit" name="zapisz" value="zapisz"></div>
</form>
';
a skrypt go obsługujący tak:
<?php
if (!isset ($_POST['zapisz'])) {
formularz();
}
//utworzenie krótkich nazw zmiennych
$imie=$_POST['imie'];
$nazwisko=$_POST['nazwisko'];
$id_kraj=$_POST['id_kraj'];
$kraj=$_POST['kraj'];
$miasto=$_POST['miasto'];
$email=$_POST['email'];
$instytut=$_POST['instytut'];
$adres=$_POST['adres'];
$opis=$_POST['opis'];
if (!$imie || !$nazwisko)
{
echo 'Nie podano wszystkich potrzebnych danych.<br/>' .'Wróć do poprzedniej strony i próbuj ponownie.';
}
{
}
or
die ("Nie można połączyć się z serwer Mysql");
die ("Nie można otworzyć bazy danych");
$zapytanie = "insert into people (imie, nazwisko, id_kraj, miasto, email, instytut, adres, data_dodania, opis) values ('$imie', '$nazwisko', '$id_kraj', '$miasto', '$email', '$instytut', '$adres', now(), '$opis'); ";
if ($wynik)
{
echo '<h1>rezultat wstawienia nowego użytkownika</h1>'; echo "Zostałeś zarejestrowany"; echo '<br/><a href="index.php">wróć do strony głównej</a>'; echo '<br/><a href="wstaw_nowego.php">dodaj następną osobę</a>'; }
else
{
echo '<h1>rezultat wstawienia nowego użytkownika</h1>'; $message2='<p>Nie zostałeś zarejestrowany z powodu błędu naszego systemu:</p><p>' . mysql_error() . '</p>'; }
echo '<font color="red">' . $message. '</font>'; echo '<font color="red">' . $message2. '</font>'; ?>
(IMG:
http://forum.php.pl/style_emoticons/default/yahoo.gif) Juz sobie poradziłem
Ten post edytował seba15290 22.08.2007, 18:37:36